玩WordPress » 技巧方法 » 2008 » 10 » 23 » 让feedcat全文输出

让feedcat全文输出


在启用feedcat作为feed托管网站后,我才发现WordPress在feedcat上是不能全文输出的,即使你的feed已经是全文输出。查看了feedcat上能输出全文的数个feed后,我发现feedcat只能识别feed中的description标签而不会使用content标签。但WordPress输出的feed中,description标签是不带有HTML标签且只输出一部分内容的。这样也就导致feedcat不能全文输出。

另一个问题就是feedcat一般会把使用WordPress的blog看成是英国的blog。这是因为WordPress基本上是不能修改feed中的语言的,她只能输出<language>en</language>。这里只要用<language>zh</language>替换它就能解决了。

这里我将在WordPress的根目录新建一个php文件,用于生成符合feedcat要求的rss文件,从而解决上面的两个问题

<?php
require('./wp-blog-header.php');
header('Content-Type: text/xml; charset=' . get_option('blog_charset'), true);
$more = 1;

?>
<?php echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'; ?>
<rss version="2.0">
    <channel>
    <title><?php bloginfo_rss('name'); wp_title_rss(); ?></title>
    <link><?php bloginfo_rss('url') ?></link>
    <description><?php bloginfo_rss("description") ?></description>
    <language>zh</language>

<?php
require_once (ABSPATH . WPINC . '/rss-functions.php');
$siteurl = get_option( 'siteurl' );
$rss = @fetch_rss( $siteurl . '/wp-rss2.php' );
if ( isset($rss->items) && 0 != count($rss->items) ) {
?>

<?php
$rss->items = array_slice($rss->items, 0, 10);
foreach ($rss->items as $item ) {
?>

        <item>
            <title><?php echo $item['title'] ?></title>
            <link><?php echo wp_filter_kses( $item['link'] ); ?></link>
            <description><?php echo htmlspecialchars( $item['content']['encoded'], ENT_NOQUOTES ) ?></description>
            <author><?php echo $item['dc']['creator'] ?></author>
            <pubDate><?php echo $item['pubdate'] ?></pubDate>
        </item>
<?php } ?>
<?php } ?>
	</channel>
</rss>

使用方法:
将上面的PHP代码保存到一个以.php为后缀的文件中(名字自定吧),然后将该文件上传到你的WordPress的根目录下。
接下来,登录到feedcat,进入你的Feed的管理界面,点击“详细资料”,将上面文件的地址粘贴到“Feed URL”输入框后,点击“更改Feed详细资料”。
当你发表一篇新文章后,你就会发现feedcat已经全文输出了!

效果看“玩WordPress”的feedcat吧 -> 快来订阅吧!

19 Responses to “让feedcat全文输出”

  1. niechen says:

    这只猫感觉还是不太好,可惜FB了

  2. […] Feedproxy活了 Posted In: Web – Thursday, October 23rd, 2008 by niechen  刚才在冰古的WANWP上看到他用Feedcat,想起了自己在8月底向Google申请的Feedproxy。 […]

  3. 冰古 says:

    哈哈,折腾一下也好。

  4. Shawn says:

    要不是看 niechen 的 feed,我还不知道你有这么个 blog….

  5. 冰古 says:

    这个blog,刚弄的。
    因为买了域名…… 😛

  6. 娱乐视界 says:

    这只猫很奇怪,一直都不更新我的FEED!见鬼了

  7. 冰古 says:

    一直不更新是多长时间呢?好像选项那里有调更新频率的。

  8. 文痞 says:

    这猫好啊!!!大大的鼓励了我~~:-)

  9. 清隐子 says:

    谢谢啊,正在试验。
    feedsky动不动就挂,偶已经要无法忍受了。。。

  10. Bati says:

    貌似还是输出不了图片啊。。。

  11. Bati says:

    不对。。我这是什么都输出不了了。。

  12. Bati says:

    恩,是输出以后只有标题和副标题,没有内容

  13. 冰古 says:

    我看了一下你的rss,原来是跳转到google feed的,我试着用fetch_rss去抓取,但失败了。这就是为什么只能输出标题和副标题的原因。
    现在我也没有想到有什么好的解决办法。如果真要使用feedcat输出全文,只能不要跳转到google feed了。

  14. Bati says:

    怎么跳转到google feed了呢。。。。

  15. 冰古 says:

    因为你使用了FeedBurner FeedSmith插件啊,它的作用就是将你的wordpress中的feed都跳转到google feed的。

  16. 汉文溪 says:

    猫是长的挺乖乖,只是养起来也不是那么省心。

  17. 冰古 says:

    的确有点麻烦的。

  18. underone says:

    我的天啊…知道今天我才找到这个解决办法…一年了…