我的问题是,当我用古腾堡块创建帖子时,我没有得到自动摘录(The\\u execrpt()),如果我在文本之前放一个图像或什么东西,看起来古腾堡并不理解它,如果我只放文本就可以了,但如果我添加图像或其他非文本的块,它是空的,有没有办法检测帖子中的第一个文本块并像摘录一样使用它。
非常感谢。
我的问题是,当我用古腾堡块创建帖子时,我没有得到自动摘录(The\\u execrpt()),如果我在文本之前放一个图像或什么东西,看起来古腾堡并不理解它,如果我只放文本就可以了,但如果我添加图像或其他非文本的块,它是空的,有没有办法检测帖子中的第一个文本块并像摘录一样使用它。
非常感谢。
你可以钩住get_the_excerpt
使用筛选parse_blocks
提取您帖子的内容。
add_filter( \'get_the_excerpt\', \'se378694_default_excerpt\', 10, 2 );
function se378694_default_excerpt( string $post_excerpt, WP_Post $post ):string {
if ( empty( $post_excerpt ) ) {
$blocks = parse_blocks( $post->post_content );
// check if the first block matches the type of content you want for your excerpt
if ( ... ) {
$post_excerpt = render_block( $blocks[ 0 ] );
}
}
}
您可以使用render_block() 如果您想获得帖子内容中任何块的最终内容。和parse_blocks() 将帖子内容(字符串)转换为块数组。
我的摘录字段在WordPress帖子的后端消失了。即使在“屏幕选项”中勾选,也不会显示。我的函数中没有任何内容。php将覆盖它。。。那么WordPress中是否有什么东西可以阻止它的出现?