WordPress: Customizing Feeds:修订间差异
Seadragon530(讨论 | 贡献) 无编辑摘要 |
无编辑摘要 |
||
第1行: | 第1行: | ||
如果象'''[[WordPress:Glossary#Feed|feed]]''','''syndication''', 和 '''RSS'''这些词语让你头脑发晕,现在就停下来读读[[WordPress:Introduction_to_Blogging#Syndication|Syndication介绍]]。这会给你一个[[WordPress:WordPress Feeds| feed总览]],包括syndication。如果你需要的话,我们有一个关于[[WordPress:WordPress Feeds|WordPress Feeds]]的文章,帮助你理解基础,从这里开始,本文假设你懂得feed是什么和如何使用它们。 | 如果象'''[[WordPress:Glossary#Feed|feed]]''','''syndication''', 和 '''RSS'''这些词语让你头脑发晕,现在就停下来读读[[WordPress:Introduction_to_Blogging#Syndication|Syndication介绍]]。这会给你一个[[WordPress:WordPress Feeds| feed总览]],包括syndication。如果你需要的话,我们有一个关于[[WordPress:WordPress Feeds|WordPress Feeds]]的文章,帮助你理解基础,从这里开始,本文假设你懂得feed是什么和如何使用它们。 | ||
定制feed,给你的读者更多关于你和你的blog的信息:你可以把附加的合作伙伴的名字放到你的blog文章上,或者连接到朋友的朋友。反之,它同样也可以帮助你限制syndication可以获得的信息,通过移除外来数据或者提供机器可读的你的版权声明。 | |||
==WordPress如何生成Feeds== | ==WordPress如何生成Feeds== | ||
WordPress使用了feed的模板集合来显示你的页面feed,多数情况下和使用主题模板显示内容相同。这些feed模板在WordPress主目录中,它们和主题系统并不一致。 | |||
WordPress包含下边的feed模板: | WordPress包含下边的feed模板: | ||
第27行: | 第12行: | ||
; wp-atom.php : 使用 [http://www.atomenabled.org/ Atom]格式显示你的登陆口。 | ; wp-atom.php : 使用 [http://www.atomenabled.org/ Atom]格式显示你的登陆口。 | ||
; wp-commentsrss2.php : 显示评论 – 可以是所有文章的最新评论也可以是某个特定文章的评论 - RSS 2.0 格式。 | ; wp-commentsrss2.php : 显示评论 – 可以是所有文章的最新评论也可以是某个特定文章的评论 - RSS 2.0 格式。 | ||
== 定制Feed == | == 定制Feed == | ||
有多种方法来定制你的feed, | 有多种方法来定制你的feed,通过你安装并用于WordPress站点的第三方软件,或者手动的更改feed模板来满足你的要求。 | ||
=== 第三方软件 === | === 第三方软件 === | ||
第49行: | 第24行: | ||
*[http://www.rssmix.com/ RSS Mix] – 合并多种RSS feed。 | *[http://www.rssmix.com/ RSS Mix] – 合并多种RSS feed。 | ||
=== | ===定制feed模板=== | ||
编辑你的feed模板很大程度上和编辑你的主题模板一样。尽管如此,feed模板并没有统一到 | 编辑你的feed模板很大程度上和编辑你的主题模板一样。尽管如此,feed模板并没有统一到 WordPress模板系统中;如果你想要不同的feed,你需要创建额外的feed模板或者在你的WordPress安装中应用[http://wordpress.org/support/topic/25905 这个补丁]。 | ||
很多特殊存在的专门的模板标签是用来根据RSS标准格式化你的内容的 。包括: | 很多特殊存在的专门的模板标签是用来根据RSS标准格式化你的内容的 。包括: | ||
第83行: | 第40行: | ||
*[[WordPress:Template_Tags/the_content_rss|the_content_rss]] | *[[WordPress:Template_Tags/the_content_rss|the_content_rss]] | ||
*[[WordPress:Template_Tags/the_excerpt_rss|the_excerpt_rss]] | *[[WordPress:Template_Tags/the_excerpt_rss|the_excerpt_rss]] | ||
==== '''让PubDate 在Wordpress 2.2中使用''' ==== | ==== '''让PubDate 在Wordpress 2.2中使用''' ==== | ||
第100行: | 第48行: | ||
<pre><pubDate><?php echo mysql2date('m-d-Y', get_post_time('Y-m-d H:i:s', true), false); ?></pubDate> | <pre><pubDate><?php echo mysql2date('m-d-Y', get_post_time('Y-m-d H:i:s', true), false); ?></pubDate> | ||
</pre> | </pre> | ||
==== 让PubDate 可以用于非英语的日期 ==== | ==== 让PubDate 可以用于非英语的日期 ==== | ||
WordPress 1.5中,默认[[WordPress:Glossary#RSS|RSS]]2.0feed使用一些语言相关的条目显示文章的日期元素,如日和月的名字。如果你用地方版本(非英语)的WordPress,一些feed读取器可能不能正确的分隔这些名字,导致显示错误或者非法操作。'''如果你使用WordPress 1.5.1之后的版本, [http://trac.wordpress.org/ticket/891/ feed的国际时间]的问题已经被修正了.''' | WordPress 1.5中,默认[[WordPress:Glossary#RSS|RSS]]2.0feed使用一些语言相关的条目显示文章的日期元素,如日和月的名字。如果你用地方版本(非英语)的WordPress,一些feed读取器可能不能正确的分隔这些名字,导致显示错误或者非法操作。'''如果你使用WordPress 1.5.1之后的版本, [http://trac.wordpress.org/ticket/891/ feed的国际时间]的问题已经被修正了.''' | ||
为了解决老版本WordPress的这个问题,打开<tt>wp-rss2.php</tt>改变'''pubDate'''的内容,把下边内容: | 为了解决老版本WordPress的这个问题,打开<tt>wp-rss2.php</tt>改变'''pubDate'''的内容,把下边内容: | ||
第128行: | 第60行: | ||
</pubDate> | </pubDate> | ||
</pre> | </pre> | ||
改成: | |||
<pre> | <pre> | ||
<pubDate> | <pubDate> | ||
第134行: | 第66行: | ||
</pubDate> | </pubDate> | ||
</pre> | </pre> | ||
'r'是一类不依赖于标准字符串的[http://www.php.net/date PHP 日期格式]。 | 'r'是一类不依赖于标准字符串的[http://www.php.net/date PHP 日期格式]。 | ||
==== 给评论feed添加登陆口标题 ==== | ==== 给评论feed添加登陆口标题 ==== | ||
这个例子是:在你的RSS feed中,从<b>By: Harriet</b>到<b>Harriet on Sample Post</b>,设置每个项目的标题。这对阅读blog上所有评论的主feed时提供一些上下文是有帮助的。因为<tt>the_title_rss</tt>不能工作在[[WordPress:The Loop|Loop]]之外,它的功能在你的主题中是必须的部分 | 这个例子是:在你的RSS feed中,从<b>By: Harriet</b>到<b>Harriet on Sample Post</b>,设置每个项目的标题。这对阅读blog上所有评论的主feed时提供一些上下文是有帮助的。因为<tt>the_title_rss</tt>不能工作在[[WordPress:The Loop|Loop]]之外,它的功能在你的主题中是必须的部分 | ||
如下代码应该放在<tt>wp_commentsrss2.php</tt>中,在评论loop开始之后的地方: | |||
如下代码应该放在<tt>wp_commentsrss2.php</tt> | |||
<pre><nowiki> | <pre><nowiki> | ||
第163行: | 第88行: | ||
</nowiki></pre> | </nowiki></pre> | ||
相应的,[http://freepressblog.org/2005/06/17/titles-in-wordpress-rss-comments/ 这个插件]将在不破坏wordpress安装的情况下得到相同的结果。 | |||
相应的,[http://freepressblog.org/2005/06/17/titles-in-wordpress-rss-comments/ 这个插件] | |||
== 检查新的Feed == | == 检查新的Feed == | ||
要看你的新的Feed,你可以在因特网上使用任何feed读取器。如果feed在那个读取器中看起来正常的话,在别的读取器中可能会出问题。 | |||
Feed格式设计成机器可以读并操作的类型;feed模板中的错误可能导致某些feed读取器无法读取你的feed。所以做完所有你要做的更改之后,检查你的feed是否达到相关标准是必须的。确认服务包括: | Feed格式设计成机器可以读并操作的类型;feed模板中的错误可能导致某些feed读取器无法读取你的feed。所以做完所有你要做的更改之后,检查你的feed是否达到相关标准是必须的。确认服务包括: | ||
第186行: | 第100行: | ||
*[http://librdf.org/rss/ Redlands RSS 1.0 校验器] | *[http://librdf.org/rss/ Redlands RSS 1.0 校验器] | ||
*[http://feeds.archive.org/validator/ Feeds.archives.org] | *[http://feeds.archive.org/validator/ Feeds.archives.org] | ||
== 更多信息和资源 == | == 更多信息和资源 == |
2008年4月23日 (三) 15:52的最新版本
如果象feed,syndication, 和 RSS这些词语让你头脑发晕,现在就停下来读读Syndication介绍。这会给你一个 feed总览,包括syndication。如果你需要的话,我们有一个关于WordPress Feeds的文章,帮助你理解基础,从这里开始,本文假设你懂得feed是什么和如何使用它们。
定制feed,给你的读者更多关于你和你的blog的信息:你可以把附加的合作伙伴的名字放到你的blog文章上,或者连接到朋友的朋友。反之,它同样也可以帮助你限制syndication可以获得的信息,通过移除外来数据或者提供机器可读的你的版权声明。
WordPress如何生成Feeds[ ]
WordPress使用了feed的模板集合来显示你的页面feed,多数情况下和使用主题模板显示内容相同。这些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 格式。
定制Feed[ ]
有多种方法来定制你的feed,通过你安装并用于WordPress站点的第三方软件,或者手动的更改feed模板来满足你的要求。
第三方软件[ ]
一些第三方软件网页服务可以帮助你管理和定制你的feed。使用这种服务可以说是一种方便的方法去做一些如计算阅读feed的人数,或者用Flickr photostream合并blog的feed这一类的事情。
这些服务包括:
- FeedBurner – 参见使用FeedBurner
- RSS Mix – 合并多种RSS feed。
定制feed模板[ ]
编辑你的feed模板很大程度上和编辑你的主题模板一样。尽管如此,feed模板并没有统一到 WordPress模板系统中;如果你想要不同的feed,你需要创建额外的feed模板或者在你的WordPress安装中应用这个补丁。
很多特殊存在的专门的模板标签是用来根据RSS标准格式化你的内容的 。包括:
- the_category_rss
- comment_author_rss
- comment_text_rss
- permalink_comments_rss
- comment_link_rss
- bloginfo_rss
- the_title_rss
- permalink_single_rss
- the_content_rss
- the_excerpt_rss
让PubDate 在Wordpress 2.2中使用[ ]
从下边的 内容可以看出,wp-rss2.php不再有pubDate命令,但是在20和22行的/wp-includes/feed-rss2.php命令中包含。
如果你是美国人,建议使用下面语句代替所说的两行:
<pubDate><?php echo mysql2date('m-d-Y', get_post_time('Y-m-d H:i:s', true), false); ?></pubDate>
让PubDate 可以用于非英语的日期[ ]
WordPress 1.5中,默认RSS2.0feed使用一些语言相关的条目显示文章的日期元素,如日和月的名字。如果你用地方版本(非英语)的WordPress,一些feed读取器可能不能正确的分隔这些名字,导致显示错误或者非法操作。如果你使用WordPress 1.5.1之后的版本, feed的国际时间的问题已经被修正了.
为了解决老版本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 日期格式。
给评论feed添加登陆口标题[ ]
这个例子是:在你的RSS feed中,从By: Harriet到Harriet on Sample Post,设置每个项目的标题。这对阅读blog上所有评论的主feed时提供一些上下文是有帮助的。因为the_title_rss不能工作在Loop之外,它的功能在你的主题中是必须的部分
如下代码应该放在wp_commentsrss2.php中,在评论loop开始之后的地方:
<item> <?php /* First, grab the title of the entry on which the comment was posted */ $title = get_the_title($comment->comment_post_ID); /* Now sanitize the formatting for RSS */ $title = apply_filters('the_title', $title); $title = apply_filters('the_title_rss', $title); ?> <title><?php comment_author_rss() ?> on <?php echo $title ?></title>
相应的,这个插件将在不破坏wordpress安装的情况下得到相同的结果。
检查新的Feed[ ]
要看你的新的Feed,你可以在因特网上使用任何feed读取器。如果feed在那个读取器中看起来正常的话,在别的读取器中可能会出问题。
Feed格式设计成机器可以读并操作的类型;feed模板中的错误可能导致某些feed读取器无法读取你的feed。所以做完所有你要做的更改之后,检查你的feed是否达到相关标准是必须的。确认服务包括:
- Feedvalidator.org - Atom 和 RSS feed.
- Experimental RSS 1.0 校验器
- Redlands RSS 1.0 校验器
- Feeds.archives.org
更多信息和资源[ ]
- 给你的Atom 或 RSS feed添加logo
- 如何添加一个图片到RSS 2.0 feed站点出现错误04/28/07
- 给WordPress RSS Feed添加logo
- Writing RSS 1.0写作指南
- 带有命名空间的Extending RSS 2.0
- WordPress Feed的RSS 风格
This article is [[WordPress::Category:Copyedits|marked]] as in need of editing. You can help Codex by editing it.