四
21
2009
wordpress的十个有用的RSS技巧
发布者: seasunRSS是一个非常简单但是及其强大的技术。目前,它作为博客聚合的一项标准技术,被广泛的应用于个人和企业中,比如博客。并且由于大部分博客都运行在wordpress上,我们将推广这篇相对鲜为人知文章,但是这些希望这些rss技巧让你跟有效的运行wordpress的rss功能。
现在让我们看看这十个有用、却鲜为人知的wordpress RSS技巧吧。没一段文章都提出了相关的问题、解决此问题的方法和对方法的运用和解释,并且举出实例让你真正明白你不仅仅是在解决一些RSS问题,同时也理解它的真正意义。所以你能够真正控制你的wordpress主题而不是使得代码臃肿的简单应用。
一,通过RSS控制你已经发布的文章。

问题重述:当你发布了文章,但后却发现了文章的错误,你需要修改它。但是这个错误已经出现在用户RSS结果中。为了避免这样的问题,这里给出的解决办法可以创建一个在文章发布和RSS结果中出现这篇文章的时延。
解决办法:保持这个技巧,讲一下代码保存到你的主题文件的功能文件(function.php)中,如果没有这个文件,直接建立并粘贴此代码即可。
<code>
1 function publish_later_on_feed($where) {
2 global $wpdb;
3
4 if ( is_feed() ) {
5 // timestamp in WP-format
6 $now = gmdate(‘Y-m-d H:i:s’);
7
8 // value for wait; + device
9 $wait = ‘5′; // integer
10
11 // http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff
12 $device = ‘MINUTE’; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR
13
14 // add SQL-sytax to default $where
15 $where .= ” AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, ‘$now’) > $wait “;
16 }
17 return $where;
18 }
19
20 add_filter(‘posts_where’, ‘publish_later_on_feed’);
</code>
代码解释:上面代码的功能是在你文章发布和文章出现在RSS结果中添加一个长5分钟的时延。如果你要更改这个时延长度,请更改代码中第九行:变量wait的数值。例如:$wait = ‘10‘;,将时延设置为十分钟(这里要求你输入的数值为int)。
资源
二,重新定向你的wordpress RSS链接到FeedBurner Feeds。

问题重述:新用户看到你的导航条上和其它博客一样漂亮的FeedBurner并开始注册使用的时候老用户已经通过默认的RSS工具定义你的wordpress了,
另外一个问题是你是不是经常改变你的wordpress主题,如果是的话你应该编辑bloginfo(‘rss2_url’)并保持FeedBurner Feeds中的链接与之一致。
解决办法:解决上面两个问题的办法很简单:使用服务器重定向。(翻译者博客)
1,首先备份你的位于网站根目录的.htaccess文件。
2,编辑.htaccess文件,加入一下代码。不要忘记修改RSS feed的url为你自己的url。
<code>
1 # temp redirect wordpress content feeds to feedburner
2 <IfModule mod_rewrite.c>
3 RewriteEngine on
4 RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC]
5 RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
6 RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://feeds.feedburner.com/wprecipes [R=302,NC,L]
7 </IfModule>
</code>
3,保持.htaccess文件。
代码解释:每当用户点击链接到http://www.yourblog.com/feed的时候服务器讲地址重定向为http://feeds.feedburner.com/yourblog。通过这样的方法,你不会丢失你的rss用户,并且当你再次改变你的wordpress主题的时候你不必再修改你的RSS 的URL。
资源:
- Redirect WordPress feeds to FeedBurner via htaccess (Redux)
- How to: redirect WordPress RSS feeds to FeedBurner with .htaccess
三,在你博客的RSS结果中插入广告(或者其它内容)。

问题重述:金钱化的RSS Feeds现在已经成为常见的做法,博客所有者最大限度的去增加他们的收益。而FeedBurner可以在Feeds结果中插入AdSens广告,但是要求你的RSS Feeds用户超过500才有资格,但这里你可以不用Feeds Burner提高的AdSens广告在Feeds结果中。
解决办法:你可以插入另外的广告或者其它信息在你的Feeds结果中。
使用如下RSS技巧即可:
1,编辑你的主题文件的function.php文件,如果没有此文件,建立即可。
2,粘贴如下代码插入到function.php文件中。
· <?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,保存文件。你可以在feeds结果看到效果了。
代码解释:在互联网上有很多类似的技巧,但是所有的办法都要求你修改wordpress的 核心文件来达到这样的效果。当然编辑wordpress的核心文件不是一个好注意,因为当你的wp升级后你需要再次编辑它,并且编辑究其本身,编辑wp的 核心文件是相对困难的。而在这里,这个技巧使用add_filter()这个wordpress函数在你的Feeds结果中插入了任何信息而不要你修改 wp的核心文件。
资源:
四,Feeds Reader中格式化输出图片

问题重述:你花大量的时间来撰写、排版你的博文,并且加入了漂亮的画面,看上去非常棒。但遗憾的是,在Feeds结果中界面现实并不是那样的完美。
解决办法:

目前大多数订阅者使用内嵌显示图像与文字,即使用文字代替图片,为了避免这个问题,可以为图像加入一个css类使之显示为块,wordpress内置的类将其居中。
代码:<img src=”http://78.46.108.98/images/wordpress-rss-hacks/myimage.jpg” alt=”This is my image” class=”center”/>
资源:How to format images for feed readers 如何在RSS中格式化图片输出
五,为每一篇文章提高Feed。

问题重述:当一片博文有很多很多评论,订阅者很难与之交谈。大多数wordpress用户并不知道,我们最喜爱的wordpress博客引擎内置了一个功能:为没篇文章的评论提高RSS Feeds。
解决办法:这个秘诀并不是什么技巧或者其它什么东西:给指定的文章中的评论提供RSS Feeds,只是调用wordpress的一个评论函数:comment_link()。
代码:<?php comments_rss_link(‘» Comments RSS Feed’); ?>
WordPress how to: provide an RSS feed for the comments in each post
六,在RSS结果 中去掉文章分类。
问题重述:你是不是只让你的博客的一个分类的文章让订阅者知道你网站的新闻,或者让你博客中特殊的一个分类的文章不被订阅?如果是的话,那些内容不应该包含在Feeds结果中。
解决办法:
1,首先获取你想从RSS 结果中排除的分类的ID号。如果你不知道如何找这个ID号的话可以可能这里(http://www.wprecipes.com/how-to-find-wordpress-category-id)
2,编辑你的主题的function.php文件,如果没有此文件,建立即可。
3,粘贴以下代码到function.php中。
1 function myFilter($query) {
2 if ($query->is_feed) {
3 $query->set(‘cat’,'-5′); //Don’t forget to change the category ID =^o^=
4 }
5 return $query;
6 }
7
8 add_filter(‘pre_get_posts’,'myFilter’);
4,保存文件,ok。
代码解释:这个排除某分类的技巧和对某分类优先考虑一样:创建一个自定义函数来排除不想在feeds结果中显示的分类的文章,然后使用非常有用的add_filter()函数来调用wordpress的核心函数pre_get_posts().
资源:
七,在Feeds结果中显示其它信息。

问题重述:你是不是超过一个博客呢?又或者你是不是还管理者一个论坛呢?你是不是想让你博客的Feeds结果中显示其它站点的Feeds信息呢?
解决办法:
许多插件可以实现这样的功能,但现在不需要它们了。可以使用wordpress内置的一个Rss Reader,例如,显示你的dashboard上的新闻。你现在要做的仅仅是使用你的模板文件就可以了。
1,粘贴以下代码到你的主题文件中的任何地方(我个人是将它放到sidebar footer 更好的是将它放到模板文件中)
<?php include_once(ABSPATH.WPINC.’/rss.php’);
wp_rss(‘http://feeds.feedburner.com/wprecipes’, 3); ?>
2,保存文件。
代码解释:第一行是将rss.php文件从wordpress的很想文件中引进来,这个文件容许我们创建wp_rss()函数,它有两个参数:第一个是RSS Feed的地址(url),第二个是RSS结果中显示文章的条数。
How to: Display any RSS feed on your WordPress blog
八,使用特殊分类提供RSS Feeds。

问题重述:很多博客谈论不同类别的话题:设计、程序、博客技巧等等。当遇到只有某已分类下的主题你感兴趣的适合呢?所以,你应该为你的博客的每个分类提供单独的订阅地址。
解决办法:
每个分类的订阅地址如下:
分类地址是:http://www.thegridsystem.org/categories/tools
那么这个分类的定义地址只是在后面加上/feed 如下:
http://www.thegridsystem.org/categories/tools/feed
非常的简单,是不是呢?但在我看了非常有用。
九,RSS结果按照分类来组织排列。

问题重述:如果你还对以前的技巧感兴趣,那么你一定希望在你博客的RSS结果中通过显示分类名称来对你的文章进行组织排列。
解决办法:
1,编辑您的任何主题的文件,要列出你的类别及其伴随的Feeds。
2,粘贴如下代码;
1 <?php wp_list_categories(‘feed_image=http://www.myblog.com/image.gif&feed=XML Feed&optioncount=1&children=0′); ?>
3,保存文件。现在你的分类名称已经可以显示了。
代码解释:这个方法使用了wordpress的一个很老的功能函数wp_list_categories(),运用了两个参数。第一个是feed_image,容许我们使用图片指定RSS url。第二个便是feed,用来指定RSS的格式。
十,在RSS Feeds中加入清除功能。

问题重述:加入你把wordpress当作CMS来管理你的网上证券或者公司的网站,在这种情况下,RSS Feeds不是很有效,一些使用者想把这些内容清除掉。
解决办法:在互联网上我已经看到了许多技巧诸如将wp_setting.php中的include去掉。我并不赞成你编辑wordpress的核心文件,取而代之的是下面这样简单的做法:将下面的代码粘贴到你主题的function.php文件中:
1 function fb_disable_feed() {
2 wp_die( __(‘No feed available,please visit our <a href=”‘. get_bloginfo(‘url’) .’”>homepage</a>!’) );
3 }
4
5 add_action(‘do_feed’, ‘fb_disable_feed’, 1);
6 add_action(‘do_feed_rdf’, ‘fb_disable_feed’, 1);
7 add_action(‘do_feed_rss’, ‘fb_disable_feed’, 1);
8 add_action(‘do_feed_rss2′, ‘fb_disable_feed’, 1);
9 add_action(‘do_feed_atom’, ‘fb_disable_feed’, 1);