默认情况下,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);
现在,我们有了没有短代码或图像的第一段。
折腾和学习止境!
编码愉快!
哦哦,刚好用到……
@ 老宋: 还好,我目前也在用。