2009年3月4日星期三

Wordpress中10个有用的RSS技巧和修改(一)



 
 

leegang 通过 Google 阅读器发送给您的内容:

 
 

于 08-12-13 通过 Wopus中文平台 作者:酋 长

文章是通过悬赏的方式搞定的。感谢某衰人和其他几个朋友的翻译!

RSS是一项非常简单同时非常强大的技术。如今,RSS是Blog内容联合的事实标准,它被同时广泛应用于个人和商业环境中;比如,在Blog中。而且因为这些Blog中的很大一部分是运行于Wordpress,我们将在本文中涉及到一些(也许)相对而言不为人所知但是有用的RSS相关技巧和修改,希望藉由这些技巧可以帮助你更有效的使用RSS — 而不用使用一些不必要和臃肿的WordPress插件。

让我们看看10个有用但不为人所知的Wordpress RSS技巧。这篇文章的每个部分提出一个问题,建议一个解决方案以及对这个解决方案的解释,这样不仅解决了你的RSS相关问题,同时让你了解你究竟在做什么,据此,你可以确定你的WordPress主题仍然在你的控制之中,而并没有被一些不安全的源代码充斥。

1.当你的新文章通过RSS发布时,控制它
sm8

问题: 你有没有过当发表文章时突然发现了一个错误?当然,你可以编辑它,但是还有个问题:这篇文章已经在你的RSS feed里发布了。为了避免这样的问题,使用下面的代码来给文章发布和发布到RSS feed之间创建一个延迟。

解决方案:复制下面的代码到你的主题的functions.php文件中来应用修改。如果你的主题不包含这个文件,创建即可。

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

代码解释:
上面的代码会在文章发布到Blog和出现在RSS feed之间制造一个5分钟的延迟。如果你想修改延时的长短,请修改第九行的$wait的值。

来源:Publish your feed later

2. 将Wordpress Feed重定向到FeedBurner Feeds上。
sm1

问题:初级Blogger们常常是这样的:通常只有在他们看到很多其他Blog都在使用FeedBurner的服务,和认识到这个工具是多么有用和酷之后才会使用它。 他们注册和开始使用FeedBurner,但是他们的早期读者们却已经订阅了WordPress缺省的Feed。

另一个问题: 你经常修改你的主题吗?如果答案是"是",你肯定厌倦了把每个bloginfo('rss2_url')都替换为你的FeedBurner Feed地址的工作。

解决方案:对上述两个问题的解决方案很简单:使用服务器重定向。

1. 创建你的.htaccess文件备份,它在你的服务器的根目录。
2. 编辑.htaccess文件并添加下面的代码。别忘了把代码中的Feed地址替换成你自己的。

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


代码解释:
每当有人点击指向 "http://www.yourblog.com/feed的链接时,他/她会被重定向到http://feeds.feedburner.com /yourblog。这样你就永远不会丢失你的RSS订阅者,或者即使你一天修改你的主题两次,也不用再手工编辑你的RSS feed地址了。

来源:Redirect WordPress feeds to FeedBurner via htaccess (Redux)

3. 添加广告(或任何内容)到你的RSS Feed
sm2

问题:让RSS Feed赚钱现在已经成为很普通的一件事,很多blog所有者都在利用这项技术将他们的收入最大化。利用FeedBurner,你可以添加Adsense到你的Feed中,但是你需要至少500个订户并且不能再使用除了Feedburner提供的 Adsense之外的任何其他广告才能启用它。

解决方案:当然,还是有办法把其他的广告插入到你的RSS feed之中的。比如,你可以专门为你的RSS订阅者准备一个指向免费Wordpress主题的链接

通过下面的几个简单步骤来达到这个目的:

1. 编辑你的主题的functions.php文件。如果你的主题不包含这个文件,创建之。
2. 将下面的代码复制到你的functions.php文件中:

  1. <a href="http://www.wprecipes.com">Have you visited WpRecipes today?</a><hr />';
  2. return $content;
  3. }
  4. add_filter('the_excerpt_rss', 'insertAds');
  5. add_filter('the_content_rss', 'insertAds');
  6. ?>

3.保存文件。现在你就可以在你的RSS feed中显示广告啦!

代码解释: 我见到过很多类似的修改,但是它们全部需要你编辑WordPress的核心文件来达到同样的效果。当然,编辑WordPress核心文件是个非常不好的主意,因为你需要在每次升级Blog之后再次编辑这些文件。而这次的这个替代方案使用了add_filter() 这个Wordpress功能来向RSS feed中插入内容,而不用编辑任何核心文件。

来源:How to: insert ads in your RSS feed

文章太长,怕大家看着累,所以会分三篇文章,今天到这里,这应该是关于RSS最全面最有价值的应用了!

未完待续~~

关联阅读


 
 

可从此处完成的操作:

 
 

没有评论:

发表评论