为什么WordPress只对我的一篇帖子显示空白摘录?

时间:2021-07-22 作者:TAH

对于Wordpress网站上的大多数帖子,我将手动摘录框留空&;让Wordpress根据我帖子的内容生成摘录。到目前为止,这一切都很好——根据我的设置,我得到了帖子的前80个单词。

然而,对于我最近的一篇文章,我的博客主页上没有显示文章标题的摘录。这篇文章本身很长,有很多文本和图像,文章的第一个部分是一段超过80个单词的文本。

我正在使用Wordpress 5.7.2。我停用了所有插件&;切换到Wordpress提供的默认主题,以确保没有恶意代码介入,但问题仍然存在。

1 个回复
最合适的回答,由SO网友:TAH 整理而成

经过几个小时的调试,我发现:

不幸的名字wp_trim_excerpt() 它不仅修剪传递给它的摘录,而且在传入空白字符串时还组装摘录。(是的,我现在明白了,这已经在文档中了,但我正在浏览代码,试图跟踪所连接的内容。)get_the_excerpt.)

呼叫excerpt_remove_blocks() 线路是否在wp_trim_excerpt() 它首先返回一个空字符串。

  • excerpt_remove_blocks() 遍历帖子中的所有块,筛选出姓名不在批准列表中的块,称为$allowed_inner_blocks, 存储在函数中。

    尽管在编辑器中,我的帖子似乎是一篇带有段落和图像块的普通帖子,但所有这些块都是一个名为core/group, 不属于$allowed_inner_blocks. 因此,当excerpt_remove_blocks() 它在这些块上循环,发现一个块的类型不可接受,但没有返回任何内容。

    但是我怎么会知道这群人?!我在块编辑器中找不到所有这些块都已分组的迹象。块编辑器一如既往地工作,我可以像往常一样添加/删除/移动块,没有任何问题。我还可以从现有块中创建新组,但我无法撤消此现有组或看到其存在的任何迹象。

    要删除隐藏组,我必须从可视化编辑器切换到代码编辑器。在那里,我看到帖子的全文是这样的:

    <!-- wp:group -->
    <div class="wp-block-group">
       <div class="wp-block-group__inner-container">
    
       ...
    
       </div></div>
    <!-- /wp:group -->
    
    我删除了这些行,更新了帖子,瞧,现在我的博客主页上出现了预期的摘录。

    关于这群人最初是如何进入那里的,没有人知道。但我希望这个解决方案现在能够出现,为下一个遇到这种情况的可怜人节省时间。