wordpress的categories feed(分类RSS输出)

问题的提出

Boss希望“每页输出RSS”,当时就觉得这可能需要一些设置。学习下来发现还真是有学问。
我觉得很多人在将WP作为CMS使用的时候忽略了Categories结构特性,这一点对于结构化数据的feed输出非常应用。

事实上,WP的设计者们赋予了Categories非常多的功能。其中之一就是根据Categories制作不同的模版来显示不同的post,比如图片和音乐。还有人使用query_posts函数构造一个blog页面,将某一个分类的post放在这个页面下,比如代码或者下载分类。

当一个blog的涉及面过于庞杂的时候,就会出现这样的问题,订阅者可能会仅仅喜欢某些特定的分类文章,而使用WP默认的RSS则包含了所有分类下的post,这显然导致低下的阅读效率,设置导致退订现象。本文将介绍实现Categories feed(分类RSS)输出的方法。其效果看起来类似于:

  • Category Name (RSS)
  • Category NameRSS feed

分类RSS的设置

首先是feed的url连接地址,根据codex的WP feeds的描述,可以这样设置分类RSS的feed:

http://example.com/wp-rss2.php?cat=42
或者是使用permalinks形式的
http://example.com/category/categoryname/feed

上面的方法可以使你得到静态的分类地址,通过手动设置可以实现分类RSS的输出,尤其是使用类似feedburner、feedsky这类的feed服务。feed链接就类似于: http://feed.yourfeedserver.com/youraccountname/categoryname/feed。

手动方法

可以手动设置分类RSS的输出,有两种方法,都是使用widgets的设置添加sidebar模块,一个是添加blogroll,一个是添加text。

添加text的代码是:

1,没有RSS图标的样式:

<a href="http://example.com/category/category-name/feed/" title="Category Name feed">Category Name</a>

2,包含RSS图标的样式:

<a href="http://example.com/category/category-name/feed/" title="Category Name feed">Category Name <img src="http://example.com/images/rss.gif" alt="RSS Feed" title="RSS Feed" /></a>

其中 a href=后面添加你的分类RSS链接地址;title=后面添加你的分类链接提示;img src=后面添加你的分类RSS图片链接地址;中间的Category Name 要改成你自己的分类名称

使用blogroll模块则需要更多的点击,不过由于操作的全窗口化,适于代码恐惧症患者:

step1,进入“管理后台”;
step2,进入“链接”;点击“添加链接”
step3,在下面的窗口添加分类feed链接,地址参见上面介绍。

wp-blogroll.png

the loop代码方法

或者使用这样的代码,放在每一篇post的the loop循环中:

<?php
$cats = get_the_category();
$num = count($cats);
for($i=0; $i<$num; $i++)
{
$cat=$cats[$i];
echo '<a href="';
get_category_rss_link(true,$cat->cat_ID,$cat->category_nicename);
echo '">'.$cat->cat_name.'</a>';
if ($i == $num-2) { echo ', and '; }
else if ($i != $num-1) { echo ', '; }
}
?>

这样,每一篇post除了显示分类链接意外还提供分类RSS的地址,方便大家订阅你的某一个分类。当然还有很多插件,也可以完成这些工作。

theme方法

就是修改你的theme文件的代码, 我的想法是将代码放在sidebar的分类里面,但是我的更改不起作用,不知道哪位大侠可以指点:

在sidrbar.php文件中找到:wp_list_categories字符串,或者你的主题很老,那就找wp_list_cats字符串,在字符串中添加“&feed=RSS,我的是:<?php wp_list_categories('sortby=name&feed=RSS'); ?>

但是我的代码大概与widgets冲突,一直没有改变侧边栏的分类模块,使其显示我们希望的RSS链接。更新:找到了中文HowTO上面提供的解决方法,有效。还有更好的消息,在wordpress的Version 2.6版本里,会将享有的分类选项全部可以在widgets中设置。

不过如果你的主题的页脚内容很多,上述代码证明是有效的。喜欢加一个feed图标,那么代码是:

<?php wp_list_categories('sortby=name&feed_image=http://example.com/images/rss.gif'); ?>
注意: feed_image=后面的链接是你的feed图标地址。

就这么多了,个人觉得在很多blog中,灵活运用分类标签的不胜枚举。这些分类的灵活使用有的时候就带来了feed订阅方面的问题。比如,没人愿意看到你的个人信息一次次地重复着。或者你将wordpress与个人感情放在一个blog里面,那么想订阅你wordpress内容的人可能会被你频繁地更新感情部分而厌烦。那么这时候可以将分类的feed放出来,便于大家订阅。

Advertisements

One comment on “wordpress的categories feed(分类RSS输出)

  1. Pingback: 提高RSS阅读效率 | 畅想帮

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s