定制Feeds

0条评论

如果feed,内容联合(syndication)或RSS这样的术语让你犯迷糊的话,就无需继续往下看了,请先了解一下什么是内容联合(Introduction to Syndication)。先弄明白feeds和内容联合才是重要的。我们手头上还有一份有关WordPress Feeds的文章,它能帮助你学习相关的基础知识,当然之后的行文是鉴于你已经了解feeds及其功用的情况下作成的。

自定义的feeds能让你的读者对你及你的博客了解得更多:你可以列出博文的协作者名单,或者是给出某个友情(文件)链接。反之,它还能帮助你限制内容联合的可用信息,可以通过移除无关数据或提供版权声明的机器可读版本来达到此目的。

WordPress如何产生Feeds

WordPress使用一套feed模板来显示网站的feeds,这与外观主题模板显示内容的方式是一个道理。这些feed模板位于WordPress主目录下;它们无法用于外观主题系统。

以下为WordPress所包括的feed模板:

wp-rss2.php 

显示RSS 2.0格式的项目。

wp-rss.php 

显示RSS 0.92格式的项目。

wp-rdf.php 

显示RDF/RSS 1.0格式的项目。

wp-atom.php 

显示Atom格式的项目。

wp-commentsrss2.php 

显示评论 - 包括所有日志的最新评论,及某特定日志的评论 - 格式为RSS 2.0。

定制Feeds

定制feeds的方法多种多样,你可以使用第三方软件将其安装并挂到WordPress中,还可以通过手动修改feed模板来实现。

第三方软件

一些第三方web服务能够帮助你管理并定制feeds。使用此类服务能够轻易地计算feed阅读人次,或将博客feed与Flickr photostream组合。

此类服务器包括:

定制Feed模板

编辑feed模板与编辑外观主题模板几乎相同。尽管如此,feed模板并未被整合入WordPress外观主题系统之中;如果你希望feeds有不同版本的话,就需要额外创建feed模板或为WordPress打上此补丁this patch)。

许多专门的模板标签都是应内容格式而存在的,而这些内容则是遵循RSS标准的。这些标签包括:

现在让我们来看看如何将这些模板标签用于WordPress网站feeds吧。

使PubDate用于Wordpress 2.2

鉴于后文,wp-rss2.php不再具有pubDate命令,但/wp-includes/feed-rss2.php在20及22行中仍使用它。

PubDate用于非英语国家日期

WordPress1.5中的RSS 2.0 feed使用某些语言特定术语来显示日志的日期元素。如果你使用的是非英文版的WordPress,某些feed阅读器就无法正确转解这些名称,从而导致显示及/或验证方面的错误。如果你使用WordPress1.5.1之后的版本,feeds中出现的国际日期(international dates in feeds)问题已被修复。

要解决早些版本WordPress中的此问题,请打开wp-rss2.php并将pubDate元素:

<pubDate>
<?php echo mysql2date('D, d M Y H:i:s +0000', get_the_time('Y-m-d H:i:s')); ?>
</pubDate>

修改为:

<pubDate>
<?php echo mysql2date('r', get_the_time('Y-m-d H:i:s')); ?>
</pubDate>

'r'为一泛用的PHP日期格式(PHP date format),并不依赖于已翻译的字串。