wordpress文章随机自定义摘要长度

WordPress 7301 Views 0 Comments

在我们的wordpress博客的文章列表,有些选择的是默认显示全文,有些是显示的摘要,显示摘要的有没有碰到这样的问题,因为wordpress是默认设置好的固定长度的摘要字段,在显示时会自动截断文章中的文字,不能完整的显示摘要中的最后一句话.那么对于读者来说,就无法通过摘要真正理解文章.刚刚看到一篇文章要介绍如何自定义摘要的长度.并且不会自动截断一句话.让摘要显示整句的文字.

具体的方法如下:

如果将下面这段代码贴入functions.php可以返回预先设定的最大长度,并删除摘要内最后一句话后的其他内容,以保证摘要不在某个句子中间截断。

要用到的是print_excerpt()函数。在主题模板下这个函数的用法是:

<?php print_excerpt(50); ?>

而下面这段代码,将摘要的最大长度设为50个字符(你可以根据需要修改这个数值),然后截取50个字符内的所有完整句子作为摘要,最后一句话后的内容会被排除在摘要之外。

// 智能可变摘要长度
function print_excerpt($length) { // 摘要最大长度,以字符计算. Length is set in characters
        global $post;
        $text = $post->post_excerpt;
        if ( '' == $text ) {
                $text = get_the_content('');
                $text = apply_filters('the_content', $text);
                $text = str_replace(']]>', ']]>', $text);
        }
        $text = strip_shortcodes($text); // 可选,推荐使用
        $text = strip_tags($text); // 使用 ' $text = strip_tags($text,'
<p><a>'); ' if you want to keep some tags</p>
<p>     $text = substr($text,0,$length);
        $excerpt = reverse_strrchr($text, '.', 1);
        if( $excerpt ) {
                echo apply_filters('the_excerpt',$excerpt);
        } else {
                echo apply_filters('the_excerpt',$text);
        }
}</p>
<p>// 返回最后一个needle前的内容
function reverse_strrchr($haystack, $needle, $trail) {
    return strrpos($haystack, $needle) ? substr($haystack, 0, strrpos($haystack, $needle) + $trail) : false;
}

搜索以下内容到本文:

转载请注明:珹觅.网志 | LuckerMe » wordpress文章随机自定义摘要长度

您必须 登录 才能发表评论!

网友最新评论 (1)

  1. 谢谢分享,正在研究这个方法。