让WordPress 在RSS 中Feed 输出支持“More”标签

7,726
让WordPress 在RSS 中Feed 输出支持“More”标签
  • 4.60 / 5 5
4.60分(5票)
让WordPress 在RSS 中Feed 输出支持“More”标签

如果你的主题支持“more”标签,在写文章的时候加上“more”标签,首页就可以截断显示。“more”标签截断文章的意义在于能够随心所欲,想断就断(汗,越写越废~)。但是在RSS 中输出feed 的时候却不支持“More”标签。这么一来,要么全文输出feed,白白流失流量;要么摘要输出feed ,文章惨不忍睹。Jeff 今天决定要解决这个问题。

于是上网查找资料,发现提供的方法都是修改WordPress 核心文件的,这么做当然欠佳。后来用英文一搜,老外那里满大街都是,找了一个改了改用在自己的主题上了,接下来分享一下吧。

丢入到主题的functions.php 文件去:

1
2
3
4
5
6
7
8
//在RSS 中Feed 输出支持“More”标签 devework.com
function dw_readmore_rss( $content ){
    $teaser = preg_split( '/<span id="(more-\d+)"><\/span>/', $content );
    $readmore = '<p><a href="'.get_permalink().'">[  前往 DeveWork 阅读全文...  ]</a></p><hr/>';
    $content = $teaser[0].$readmore;
    return $content;
}
add_filter( 'the_content_feed' ,'dw_readmore_rss' );

Jeff 的话将这个与之前《WordPress在RSS Feed 中输出版权信息》的代码结合了一下,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
//在RSS 中Feed 输出支持“More”标签 devework.com
function dw_readmore_rss( $content ){
    $teaser = preg_split( '/<span id="(more-\d+)"><\/span>/', $content );
    $readmore = '<p><a href="'.get_permalink().'">[  前往 DeveWork 阅读全文...  ]</a></p><hr/>';
    $cprightfeed = '<p></p><span style="font-weight:bold;">原文链接:</span>来自 <a href="'.home_url().'">'.get_bloginfo('name').'</a> | <a rel="bookmark" title="'.get_the_title().'" href="'.get_permalink().'">'.get_permalink().'</a>
                    <br/><span style="font-weight:bold;">版权声明:</span> 本文采用 <a rel="nofollow" href="http://creativecommons.org/licenses/by-nc-sa/3.0/" title="署名-非商业性使用-相同方式共享">BY-NC-SA</a> 协议进行授权 | DeveWork ,版权所有,转载请用明链标明本文地址。
                    <br/><span style="font-weight:bold;">本站相关:</span>  <a href="http://devework.com/about">关于本站</a> | <a href="http://devework.com/contact">联系站长</a> | <a rel="nofollow" href="https://me.alipay.com/majianhui">捐助作者</a> | <a rel="nofollow" href="http://devework.com/random">随机文章</a> | <a href="http://www.jianhui.org">Jeff的阳台</a> | <a rel="nofollow" href="http://weibo.com/jh2316">新浪微博</a>
                    </p>
                    ';
    $content = $teaser[0].$readmore.$cprightfeed;
    return $content;
}
add_filter( 'the_content_feed' ,'dw_readmore_rss' );

给个在阅读器中的效果图吧~

相关文章:

WordPress在RSS Feed 中输出自定义特色图像(缩略图)

WordPress RSS Feed 优化/设置技巧六则

喵~本文目前有8条留言,欢迎发表评论!

  1. 板凳也不错
    :

    原来如此! 是写成width: 80%;之类的吗?
    你用的是多少呢? 😳

    [回复]
  2. 传说中的沙发
    :

    感觉有点不厚道啊
    反正我是不在乎流量, 大家看着高兴就好, 没必要搞这一套伤感情的事

    [回复]
    • 伤感情??没有吧?! ➡

      [回复]
      • 总之看着肯定会不爽啊 阅读器里看着好好的 非得跳转到浏览器中 👿

        [回复]
      • 再问下哈, 你的评论回复发邮件通知里的宽度是怎么设定的?
        我的邮件通知在移动设备上看宽度会超出屏幕范围好大一块, 你的显示就很正常,CSS样式是怎么设定宽度的?

        [回复]
        • CSS 的width 用百分比就可以自适应了。

          [回复]
          • 原来如此!是写成width:80%;这样吗?
            你用的是多少呢? 😳

            [回复]

打破沉默,我来发表评论鸟~