/ 博客 / 1571阅

the_excerpt()函数修改摘要字数并添加链接

Chun这个主题很美观大方,且用了比较高大上的themehybrid core,有些小缺憾也能通过简单的主题修改来完成。比如首页只显示55字的文章摘要,比较短,读者看到缩略文后的[...]也不知道点哪里(其实是点标题,但有人可能不知道),因此需要简单扩充function.php中the_excerpt()函数的功能。

//改变the_excerpt()函数显示的字数,默认为55
function emtx_excerpt_length( $length ) {
 return 55; //只要把55改为你需要的字数
}
add_filter( 'excerpt_length', 'emtx_excerpt_length' );

//给the_excerpt()函数的字符带上“全文”的链接
function emtx_continue_reading_link() {
 return ' <a href="'. get_permalink() . '">全文&raquo;</a>';
//如果想显示短链接,以上这句可以改写为:
//return ' <a href="'. wp_get_shortlink(get_the_ID())  . '">全文&raquo;</a>';
}
function emtx_auto_excerpt_more( $more ) {
 return ' [&hellip;]' . emtx_continue_reading_link();
}
add_filter( 'excerpt_more', 'emtx_auto_excerpt_more' );
 
function emtx_custom_excerpt_more( $output ) {
 if ( has_excerpt() && ! is_attachment() ) {
  $output .= emtx_continue_reading_link();
 }
 return $output;
}
add_filter( 'get_the_excerpt', 'emtx_custom_excerpt_more' );

当然,其实直接点标题是个更好的习惯,别的不说,至少标题字很大,也不需要移动鼠标太多,点起来很舒服嘛。总之,这段代码放在这里供参考。

# 写于十年前,改于二年前
           

10

  1. Betty

    55字那个直接可以改后台里的formatting.php

    我之前都是把55改成上百的数字就可以了

    55因为默认的都是英文,换算成中文的,自然显示的都少了

    我之前设的数值好像是350

    Safari 7 · Mac OS X 10.9
    1. S̆̈

      @Betty很多主题里没有formatting.php这个文件哦亲!估计是你的主题才自带的。

      Opera 23 · Windows 7
      1. Betty

        @S̆̈可是……formatting.php又不存在于主题文件夹之下

        formatting.php是在wp-includes文件夹啊

        而formatting.php与WordPress而言疑似是基础文件……

        Maxthon 3 · Windows XP
        1. S̆̈

          @Betty如果修改includes里面的formatting.php的话,比如近期wordpress就要升级到4.0版了就会被覆盖的,而修改主题的function.php不存在这个问题。

          Opera 23 · Windows 7
  2. Betty

    为什么你就会觉得你的方式疑似优越于我的?

    难道你没发现其实我们俩的方式是换汤不换药的异曲同工?

    改formatting.php,WP升级容易被覆盖

    改function.php,那用户换个模板,岂不一样不能用?还不是需要在新模板下再改一次

    二者相比之下,你觉得是用户换模板的频率比较高,还是WP三天两头给你升级版本的频率高?

    Maxthon 3 · Windows XP
    1. S̆̈

      @Betty傻妹纸,换个模版还有首页用the_excerpt()这个函数吗?至少我看到大部分主题都没用……

      Opera 23 · Windows 7
      1. Betty

        @S̆̈傻叔叔

        你为什么就没有看懂我上一条的重点?

        重点就是,无论改function.php,还是formatting.php

        一旦有更新或更换,都需要二次操作

        ——————————————————————

        而你的这个,我是只是觉得加代码好长一串

        而改formatting.php的话,直接把数字从默认55改成自己想要的数字就可以了

        我现在都习惯把修改后的formatting.php,保存页面在电脑里

        如果有WP版本的更新,更新完我就把事先保存好的修改版formatting.php再上传覆盖一下就完事了

        就算对于勤换模板的人来说,改formatting.php之后,换了模板也只要在新模版下再设置the_excerpt(),

        如果是改function.php,就等于换了模板,就得又改function.php又改the_excerpt()

        ————————————————————————————

        还是那句话,我们的方式其实都是换汤不换药

        这话题可以结束了,适合自己的,就是最好的,啊哈

        Maxthon 3 · Windows XP
        1. S̆̈

          @Betty可是你没学过软件工程,不知道层级的关系……wp里能不改系统文件就不应该改,一般修改都是主题,甚至为此制作子主题。

          Opera 23 · Windows 7
  3. Betty

    是啦,当初我也就学了VB、VF而已

    Maxthon 3 · Windows XP
    1. S̆̈

      @Betty嗯,难怪。

      Opera 23 · Windows 7

发表回复

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