获取文章的第一个段落作为 WordPress 的摘要

默认情况下,WordPress 将从内容中生成 55 个单词的自动摘要,如果数量大于该数量,则字符串 ‘[…]’ 将附加到摘要中。如果字符串少于 55 个单词,则内容将按原样返回。在其他情况下,如果将手动摘要添加到帖子中,它将按原样使用,而不是创建 55 个单词。

与其创建手动摘录,不如将每篇文章的第一个段落用作摘要。将以下这段代码添加到您的主题 functions.php 中,用于从文章内容中获取第一段。

add_filter( 'wp_trim_excerpt', 'my_custom_excerpt', 10, 2 );

function my_custom_excerpt($text, $raw_excerpt) {
    if( ! $raw_excerpt ) {
        $content = apply_filters( 'the_content', get_the_content() );
        $text = substr( $content, 0, strpos( $content, '</p>' ) + 4 );
    }
    return $text;
}

wp_trim_excerpt上面的函数添加了一个过滤器,通过检查摘要来修改返回值。如果未提供手动摘录,则将返回文章内容的第一段。摘录中不会有 55 个单词或“[…]”。

但是该函数也处理第一段中找到的所有短代码吗?使用strip_shortcodes()函数将删除简码。将第 5 行替换为以下代码:

$content = apply_filters( 'the_content', strip_shortcodes( get_the_content() ) );

如果想从中删除图像?我们可以使用模式用 preg_replace 来做到这一点。在第 7 行之后添加新行:

$text = preg_replace("/<img[^>]+\>/i", "", $text);

现在,我们有了没有短代码或图像的第一段。

折腾和学习止境!

编码愉快!


2 comments

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据