从古腾堡创建的页面中获取自动摘录

时间:2020-11-23 作者:kelvin ramirez

我的问题是,当我用古腾堡块创建帖子时,我没有得到自动摘录(The\\u execrpt()),如果我在文本之前放一个图像或什么东西,看起来古腾堡并不理解它,如果我只放文本就可以了,但如果我添加图像或其他非文本的块,它是空的,有没有办法检测帖子中的第一个文本块并像摘录一样使用它。

非常感谢。

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

你可以钩住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() 将帖子内容(字符串)转换为块数组。

相关推荐

How to show excerpt field

我的摘录字段在WordPress帖子的后端消失了。即使在“屏幕选项”中勾选,也不会显示。我的函数中没有任何内容。php将覆盖它。。。那么WordPress中是否有什么东西可以阻止它的出现?