2008.12 04

10个优化WordPress RSS Feed的技巧(1)

像你所知道的,RSS Feed对于大多数人的互联网生活,已经是必不可少的部分。由于其方便和效率,越来越受关注,甚至追捧。特别是WordPress非常重视这一点。比如提交到WordPress官方主题目录的主题,都需要在明显的地方显示RSS Feed图标。所以,今天,介绍一下来自Smashing Magazine的《10 Useful RSS-Tricks and Hacks For WordPress》吧,给你10个优化WordPress Feed的方法。

1. 控制文章RSS的输出时间

sm8.jpg

出现问题: 你有没有过发表一篇文章,但立即发现有错误要改。可是RSS已经输出,而让读者看到错误的信息? 对,我想有的。我自己也经常出现这样的问题,特别是文章内容里面需要涉及到代码。

解决方法: 把下面的代码拷贝到你主题的function.php文件,如果没有的话,新建一个以function.php为命的文件,然后把这些复制进去;

function publish_later_on_feed($where) {
global $wpdb;
if ( is_feed() ) {
// timestamp in WP-format
$now = gmdate('Y-m-d H:i:s');
// value for wait; + device
$wait = '5'; // integer
// http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff
$device = 'MINUTE'; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR
// add SQL-sytax to default $where
$where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait ";
}
return $where;
}
add_filter('posts_where', 'publish_later_on_feed');

代码功能: 上面的代码会让你的文章迟5分钟输出Feed。如果你想改变迟延的时间,修改代码中的$wait = ‘5′,5代表5分钟。

2. 重定向你的WordPress Feeds到FeedBurner

sm1.png

出现问题: 新手在使用WP的时候,通常不会使用RSS Feed的Feedburner的烧制服务。而当他开始使用的时候,别人已经订阅了原始的Feed,并且这个Feed地址通常与服务商提供的网址不同。另外的问题是,你经常换主题吗? 如果是,我想你也会对每次都需把bloginfo(‘rss2_url’) 换成自己的feed地址而感到烦。

解决方法: 解决这些问题的方法就是,利用服务器的重定向功能。

  1. 新建(修改)在一个.htaccess文件,上传到服务器中WP的根目录;
  2. 编辑.htaccess文件,把下面的代码复制到里面去,当然,可别忘了把地址修改成你自己的:

    # temp redirect wordpress content feeds to feedburner
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC]
    RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
    RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://feeds.feedburner.com/wprecipes [R=302,NC,L]
    </IfModule>

  3. 保存文件,完成!

代码功能: 每次有个点击http://www.youblog/feed或者其他你博客的Feed地址的时候,将会自动转到你设定的地址中去。这可以使你会不失去任何一个订阅者。并且,即使你两天换一个主题,也不用再担心没有及时修改Feed地址。

3. 插入广告(或其他东西) 到你的RSS Feed

sm2.png

出现问题: 利用RSS Feed来增加收入已经成为一个非常普通的行为。但FeedBurner只能插入Google Adsense。可是你又不知道如何插入别的广告或者内容。

解决方法: 嘿嘿,这是可以解决的问题。你可以为你的Rss读者提供只能在Feed中见到的内容,比如一个WP主题。

你面要做的是,按下面的步骤做一篇:

  1. 编辑functions.php,当然,像上面说的到,如果没有,新建一个;
  2. 把下面的代码复制进这个文件:

    <?php
    function insertAds($content) {
    $content = $content.'<hr /><a href="http://www.wprecipes.com">Have you visited WpRecipes today?</a><hr />';
    return $content;
    }
    add_filter('the_excerpt_rss', 'insertAds');
    add_filter('the_content_rss', 'insertAds');
    ?>

  3. 保存它,这就能显示了在你的RSS feed中啦!

另外,如果上面有代码没有起作用,有可能是插件冲突,或者其他问题引起的,可以尝试一下另一个相似的方法:不用插件实现在RSS Feed中插入其他内容

代码功能: 这功能也可以通过修改内核来实现。不过,这并不是一个好方法。因为在每次升级的时候,会有麻烦。利用上面的方法,使用WP中的add_filter()功能,这样会更方便修改。

4. 让图片在RSS Feed中显示定义样式

sm6.jpg

出现问题: 你努力地把文章变得漂亮起来,图文并茂,不过,当然文章出现在RSS Feed阅读器中的时候,却不幸地显示得非常难看。

解决方法: 这个问题的事实就是作者把图片放在文本内行:

inline-image.jpg

解决这个问题就是修改你的CSS文件,使你的图片显示block值,而WP中内置了 "center"这个类,比如:

<img src="http://78.46.108.98/images/wordpress-rss-hacks/myimage.jpg" alt="This is my image" class="center" />

相关资源:

5. 为你的读者提供每篇文章的RSS Feed

sm9.png

出现问题: 当一篇文章有很多评论的时候,每个评者都很有可能无法及时得到评论的通知。事实上,很多主流的博客程序,都会提供单篇文章的评论RSS Feed。

解决方法: Well, this recipe isn’t really a hack or anything: to provide an RSS feed for the comments in a particular post, just call the comment_rss_link() function:

<?php comments_rss_link('&raquo; Comments RSS Feed'); ?>

42

  1. 2008.12.04 5:41 am
    老所(visit): [回复]

    啊~~~~~~~~~~~~~~~~~~~~~~~~~
    沙发

    哈哈哈哈

    好东西!收藏!

  2. 2008.12.04 6:36 am
    L(visit): [回复]

    板凳。

  3. 2008.12.04 6:39 am
    Chada(visit): [回复]

    这些技巧很实用喔!好好学习一下,谢谢So小鱼![我在这里无法使用Enter断行,为什么呀?P.S: All screenshot images cannot be seen @ this time.]

  4. 2008.12.04 8:01 am
    Adreaman(visit): [回复]

    这种实用的东西多多益善啊~谢!

  5. 2008.12.04 8:14 am
    Shawn(visit): [回复]

    哈哈,这篇我看了原文,前半部分很有趣。

  6. 2008.12.04 8:29 am
    leehow(visit): [回复]

    小朋友复活了啊,但是文章图片我没有看到??

  7. 2008.12.04 9:07 am
    雀巢(visit): [回复]

    精品文章,赞sofish

  8. 2008.12.04 10:55 am
    流星(visit): [回复]

    好东西,照做下,特别是第一个

  9. 2008.12.04 11:51 am
    流星(visit): [回复]

    @流星:第一个完全复制丢进去,几分钟之后就无法链接到数据库了。查询说是一开博客cpu占用率就狂飙,被迫删除了……

  10. 2008.12.04 12:39 pm
    fisio(visit): [回复]

    wp的博客,默认状态下,在分类、单篇等url后加 /feed 就能订阅分类文章和单篇评论。。。

  11. 2008.12.04 12:42 pm
    stephen(visit): [回复]

    看来是有必要设置一下,前两天我点错键,把一篇只有标题而没有内容的文章发布出去了,FeedBurner马上就给我抓去了,晕啊!!
    我看来延迟半小时左右最好,有足够的时间修改!!

  12. 2008.12.04 12:49 pm
    Dianso(visit): [回复]

    学习了

  13. 2008.12.04 1:21 pm
  14. 2008.12.04 1:30 pm
    iColor(visit): [回复]

    先把blog折腾好再说RSS的事..

  15. 2008.12.04 2:22 pm
    David Lau(visit): [回复]

    嗯,记得是前天才看完英文的,今天就有中文了,呵呵~

  16. 2008.12.04 4:12 pm
    sofish(visit): [回复]

    @老所: 您真早啊。

    @L: …ohho,新面孔? 原来是新头像。

    @Chada: 我太懒了。昨晚没加自己的图片。你说换不了行? 有人说我网站被挂马,不知道为什么。

    @Adreaman: 今晚继续介绍,hoho….

    @Shawn: 应该是前半部分比较好用。

    @leehow: 留言又过百了,是不是应该更新一下呢?

    @雀巢: sm的精品文章,哈哈,MS是wp recipe写的。

    @流星: 有这么恐怖? 前后要有。

    @fisio: er? 这样的,哈哈… 我也不太清楚。不过,可以加个按钮让人知道嘛。

    @stephen: 半个小时-_-!! 长啊。

    @Dianso: …

    @醉倚西风:…

    @iColor: 为什么? 我刚开始的时候还不懂什么是RSS呢,懂了,可以尽量先解决问题嘛。

    @David Lau: 嗯,作简单介绍而已。

  17. 2008.12.04 4:54 pm
    Chada(visit): [回复]

    @sofish: 是我人品值不行,今天早上Enter不能用,只能用Ctrl+Enter才行。现在恢复了,呵呵。
    我没装杀毒软件,所以不知道有没有,但是看起来不像被挂吧。

  18. 2008.12.04 5:05 pm
    sofish(visit): [回复]

    @Chada: 嗯,刚才问了shawn,他说没有状况。哈哈,竟然都是没装杀毒软件的人。

  19. 2008.12.04 5:16 pm
    Kiiis(visit): [回复]

    自己不看RSS,也不给自己的BLOG弄,嘿嘿

  20. 2008.12.04 5:34 pm
    林网博客(visit): [回复]

    确实很别致!!极度欣赏!

  21. 2008.12.04 6:06 pm
    leehow(visit): [回复]

    @sofish:生活惨白无趣,不知写什么,要不写你,听说我那天把你猜的很准。

  22. 2008.12.04 7:24 pm
    sofish(visit): [回复]

    @Kiiis: 神奇的你!

    @林网博客: 哪里?

    @leehow: 真的? MS从来没有人能很好猜中。哈哈…shawn这样比较能猜的,都也是猜得很奇怪。

  23. 2008.12.04 7:25 pm
    Kiiis(visit): [回复]

    @Kiiis: 神奇的你!
    汗,每天也就看看cnbeta和163的评论(没错,是只看评论不看新闻)

  24. 2008.12.04 7:26 pm
    sofish(visit): [回复]

    @Kiiis: cnbeta的评论? 囧,你可以试下看youku的评论,几乎集了中国所有脑残与牛人。哈哈…

  25. 2008.12.04 7:31 pm
    Kiiis(visit): [回复]

    youku我都不想去了,TMD评论还要注册账号!不让我评论的网站我也不看它的评论!

  26. 2008.12.04 7:36 pm
    Kiiis(visit): [回复]

    嗯……不订阅是不喜欢每天去某个站看一大堆日志,不过刚才发现QQ邮箱有订阅功能,所以,恭喜你成为我第一个被订阅者!

  27. 2008.12.05 12:15 am
    Humphrey(visit): [回复]

    Smashing Magazine 的文章哦,不错!

  28. 2008.12.05 11:59 am
    Yacca(visit): [回复]

    估计插入广告的方法,是众多小盆友极度渴望滴…-.-

  29. 2008.12.05 3:39 pm
    BlackDream(visit): [回复]

    我提个问题:我不想让文章输出rss怎么解决?

  30. 2008.12.05 4:01 pm
    Netforce(visit): [回复]

    用RSS较少,感觉直奔网站阅读最实在,虽然有些麻烦。

  31. 2008.12.05 5:21 pm
    sofish(visit): [回复]

    @BlackDream: 看看,第二篇文章的第10条… 这里:http://www.happinesz.cn/archives/794/

    @Netforce: 哈哈,网站打开要考虑到速度嘛。

  32. 2008.12.05 7:34 pm
    摩摩诘(visit): [回复]

    貌似这一篇比第二篇要实用,呵呵

  33. 2008.12.15 3:53 pm
    Betty(visit): [回复]

    我试用了第三条,在wp 2.7下无效~~
    有人试用成功了么?

  34. 2008.12.16 12:05 pm
    Betty(visit): [回复]

    我改了改代码终于成功了,详情见我博客 :)
    BTW:给这里trackback了,但是这里没动静…

  35. 2008.12.16 2:00 pm
    sofish(visit): [回复]

    @Betty: 不过,我trackback你就很顺利了,已经加上一个链接到你的文章。

  36. 2008.12.16 2:06 pm
    Betty(visit): [回复]

    是啊,反应很快…

  37. 2009.04.08 9:54 pm
    RisingSun(visit): [回复]

    恩,是的,蛮不错的,今天才学习了,呵呵

  38. 2009.04.08 9:56 pm
    RisingSun(visit): [回复]

    对了,sofish,我一直想问你,当浏览一篇文章时,进入该文章,在文章的顶部有个路径出来的,这个效果要怎样实现,请指教,谢谢

    比如:首页》wordpress》

  39. 2009.04.08 9:59 pm
    sofish(visit): [回复]

    @RisingSun: 调用文章的分类嘛。

  40. 2009.04.09 1:06 pm
    RisingSun(visit): [回复]

    呵呵,谢谢哈!

  41. 2009.11.15 2:18 am
    ttwan(visit): [回复]

    老大,我的RSS订阅文章,看起来都堆积在一块儿了!非常的难看,怎么解决,帮帮我!

    能发个邮件给我吗?谢谢!

  42. 2010.01.13 2:53 pm
    创意无限(visit): [回复]

    学习了,我也用一些试试

Additional comments powered by BackType