吵吵   2011-10-01  阅读:2,531

wordpress的功能确实是强大的,以至于我不得不每次来拿这句话做开场白,但是也会有很多bug的,最郁闷的一个bug就是它的feed输出不能只显示摘要。哪怕我在后台已经设置好了rss中只显示概要,但是它还是会输出全文,为了解决这个问题,着实费了不少脑筋,暂且不管了,来看看吧。

本来我不是不太去想改它的代码的,所以就试了一下插件,大概的方法就是重新hook输出的content,然后把content替换为我们的摘要,代码如下:

add_filter('the_excerpt_rss','autoLinkRss',9);
function autoLinkRss($content)
{
if(is_feed())
{

$content=get_the_excerpt();

}
return $content;
}

但是执行之后发现还是输出了全文,那么出现问题就子get_the_excerpt()上了,因为它调用得出还是全文,现在就比较蛋疼了,也就是说是get_the_excerpt()函数有问题了

最后找到query.php中的一个函数 function setup_postdata($post) 不用说,是来准备要显示的文章的数据的有一行代码是:

if ( is_single() || is_page() || is_feed() )
$more = 1;

说明在单个页面、page页面、feed页面它都默认为显示全文了,好了删了is_feed()这个即可了,试试看去,希望可行。

吵吵微信朋友圈,请付款实名加入:

吵吵 吵吵

2条回应:“wp解决feed(rss)页面不能只显示摘要bug”

  1. 地球博客说道:

    博主还能折腾,也很会折腾,佩服!

  2. 風痕影说道:

    个人认为这边使用 is_feed() 并不是个问题,因为这段代码应该是影响文章全文的输出用的,不是摘要,摘要是其他地方控制的,详细原因我已回在版主的「bug 分析」那篇文章里头。

    这部分我没实际测试,估计如果把 is_feed() 给去掉了,会连 the_content_feed() 的内容都只剩下摘要。

发表评论

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