今天搞wordpress的rss输出,原本并没有关心是rss输出的。不过最近托管左rss输出到feedsky。开始使用全文输出的。不过发觉全文输出的话,图片比较多,如果读者对文章表示太感兴趣的话会load得比较慢,所以想改成摘要输出。谁知道wordpress的摘要输出实在太差了,去除全部的html和图片。非常不美观。我希望rss的摘要输出和我首页的摘要输出是一样的。我首页是使用<!–more–>标签来定义摘要输出的。但是rss并不会自动摘要到more标签。
在网上搜索一些,原来wordpress的旧版本的全文输出是会自动截取到more标签的。不知到从那个版本开始rss的全文输出不在截取more标签了。反正现在我这个2.7就不会了。在管理界面也找不到设置。一时间也找不到相关插件。只好研读代码找解决方案。
重要找到解决方案了。
第一个方法: 打开在wp-includes目录下的feed-rss2.php文件修改两个地方。
第一个是在文件的第9行加上global $more;
header('Content-Type: text/xml; charset=' . get_option('blog_charset'), true);
global $more;
$more = 1;第二个地方时在文件的第50行增加一个$more=0; 改成下边这样。
post_content ) > 0 ) : ?>
]]>
]]>
第二个方法: 打开在wp-includes目录下的query.php文件function setup_postdata($post) 函数内修改2665行。 if ( is_single() || is_page() || is_feed() ) 改成 if ( is_single() || is_page() ) 结果如下:
if ( !$page )
$page = 1;
if ( is_single() || is_page() )
$more = 1;
$content = $post->post_content;
上述方法是针对wordpress 2.7.1的文件修改。对于其他版本请自己找相应的地方。