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的输出时间

出现问题: 你有没有过发表一篇文章,但立即发现有错误要改。可是RSS已经输出,而让读者看到错误的信息?

对,我想有的。我自己也经常出现这样的问题,特别是文章内容里面需要涉及到代码。

解决方法:

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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

出现问题: 新手在使用WP的时候,通常不会使用RSS

Feed的Feedburner的烧制服务。而当他开始使用的时候,别人已经订阅了原始的Feed,并且这个Feed地址通常与服务商提供的网址不同。另外的问题是,你经常换主题吗?

如果是,我想你也会对每次都需把 bloginfo(‘rss2_url’) 换成自己的feed地址而感到烦。

解决方法:

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

  1. 新建(修改)在一个.htaccess文件,上传到服务器中WP的根目录;

  2. 编辑.htaccess文件,把下面的代码复制到里面去,当然,可别忘了把地址修改成你自己的:

    1
    2
    3
    4
    5
    6
    <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

出现问题: 利用RSS Feed来增加收入已经成为一个非常普通的行为。但FeedBurner只能插入Google

Adsense。可是你又不知道如何插入别的广告或者内容。

解决方法:

嘿嘿,这是可以解决的问题。你可以为你的Rss读者提供只能在Feed中见到的内容,比如一个WP主题。 你面要做的是,按下面的步骤做一篇:

  1. 编辑functions.php,当然,像上面说的到,如果没有,新建一个;

  2. 把下面的代码复制进这个文件:

1
2
3
4
5
6
7
8
<?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");
?>
  1. 保存它,这就能显示了在你的RSS feed中啦!

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

代码功能:

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

功能,这样会更方便修改。

相关资源:

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

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

解决方法:

这个问题的事实就是作者把图片放在文本内行: inline-image.jpg

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

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

相关资源:

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

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

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

相关资源:

本文转载自:http://sofish.de/789,感谢原作者。