经过几个小时的调试,我发现:
不幸的名字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 -->
我删除了这些行,更新了帖子,瞧,现在我的博客主页上出现了预期的摘录。关于这群人最初是如何进入那里的,没有人知道。但我希望这个解决方案现在能够出现,为下一个遇到这种情况的可怜人节省时间。