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. Safari 7 Safari 7 Mac OS X 10.9 Mac OS X 10.9

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

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

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

    我之前设的数值好像是 350

      1. Maxthon 3 Maxthon 3 Windows XP Windows XP

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

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

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

        1. Opera 23 Opera 23 Windows 7 Windows 7

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

  2. Maxthon 3 Maxthon 3 Windows XP Windows XP

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

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

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

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

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

      1. Maxthon 3 Maxthon 3 Windows XP Windows XP

        @Yan 傻叔叔

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

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

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

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

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

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

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

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

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

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

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

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

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

        1. Opera 23 Opera 23 Windows 7 Windows 7

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

发表评论

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