如何在摘录中包含HTML语言?

时间:2013-09-01 作者:user37445

我使用Leaf theme

我似乎无法设置主页摘录的格式。

我尝试了插件和摆弄主题函数。php文件,但没有用。

我不需要在摘录中加入太多花哨的东西,只需要一点格式而已。

这应该是可能的,对吧?

1 个回复
SO网友:NickJAB

摘录在->wp includes/formatting中创建。php使用以下代码:

function wp_trim_excerpt($text) { // Fakes an excerpt if needed
    global $post;
    if ( \'\' == $text ) {
        $text = get_the_content(\'\');
        $text = apply_filters(\'the_content\', $text);
        $text = str_replace(\'\\]\\]\\>\', \']]>\', $text);
        $text = strip_tags($text);
        $excerpt_length = 55;
        $words = explode(\' \', $text, $excerpt_length + 1);
        if (count($words)> $excerpt_length) {
            array_pop($words);
            array_push($words, \'[...]\');
            $text = implode(\' \', $words);
        }
    }
    return $text;
}
要更改WP通常为摘录显示的行为,请首先删除此函数(不是从核心代码中删除,而是使用remove\\u filter(),方法是将其放置在函数中。php:

remove_filter(\'get_the_excerpt\', \'wp_trim_excerpt\');
接下来,您需要创建一个新函数来控制摘录,以便可以从WP core复制上述函数作为起点。给它起个不同的名字。然后,改变你需要的。例如,如果要允许在摘录中使用标记,可以修改此行:

$text = strip_tags($text);
对此:

$text = strip_tags($text, \'<b>\');
如果您需要多个允许的html标记,请在后面列出它们。所以你的新函数在你的函数中。php可能如下所示:

function nb_html_excerpt($text) {
    global $post;
    if ( \'\' == $text ) {
        $text = get_the_content(\'\');
        $text = apply_filters(\'the_content\', $text);
        $text = str_replace(\'\\]\\]\\>\', \']]&gt;\', $text);
        $text = strip_tags($text, \'<b>\');
        $excerpt_length = 55;
        $words = explode(\' \', $text, $excerpt_length + 1);
        if (count($words)> $excerpt_length) {
            array_pop($words);
            array_push($words, \'[...]\');
            $text = implode(\' \', $words);
        }
    }
    return $text;
}
最后,您需要告诉WP通过新函数过滤您的摘录。在函数中添加如下过滤器。php:

add_filter(\'get_the_excerpt\', \'nb_html_excerpt\');

结束