找回密码
 加入
搜索

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

[复制链接]
发表于 2006-5-5 14:41:37 | 显示全部楼层 |阅读模式

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

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


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


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

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



function publish_later_on_feed($where) {
global $wpdb;
if ( is_feed() ) {
// timestamp in WP-format
$now = gmdate(’Y-m-d H:i:s’);
// value for wait; + device
$wait = ‘5′; // integer
// http://dev.mysql.com/doc/refman/ ... ction_timestampdiff
$device = ‘MINUTE’; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR
// add SQL-sytax to default $where
$where .= ” AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, ‘$now’) > $wait “;
}
return $where;
}
add_filter(’posts_where’, ‘publish_later_on_feed’);

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

来源:Publish your feed later



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

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

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

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

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

# temp redirect wordpress content feeds to feedburner
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC]
RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
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



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

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

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

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


【a href=”http://www.wprecipes.com”】Have you visited WpRecipes today?【hr /】’;
return $content;
}
add_filter(’the_excerpt_rss’, ‘insertAds’);
add_filter(’the_content_rss’, ‘insertAds’);
?>

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

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

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



4. 为Feed阅读器排版你的图片

问题:你花费了大量的时间写文章和排版来让它们看起来整洁又美观。在你的Blog上看这些内容真是帅呆了。但遗憾的是,当文章出现在Google Reader或是其他RSS阅读器上时,它就不是这回事儿了。

解决方案:这是由于大多数feed阅读器都将图片直接插入到文本中导致的:

为了避免这个问题的出现,添加一个CSS class让图片以一个区块的方式显示。Wordpress提供内建的class”center“:

  1. 【img class=”center” src=”http://78.46.108.98/images/wordpress-rss-hacks/myimage.jpg” alt=”This is my image” /】
复制代码
来源:How to format images for feed readers
5. 为你的每篇文章准备一个单独的Feed
问题:当一篇文章有大量的评论时,对读者来说加入讨论是非常困难的事。大多数Wordpress用户并不清楚这个问题,但我们的最佳Blog引擎其实有一个内建的功能来为每篇文章的评论提供一个RSS feed。
解决方案:其实,这并不能算是严格意义上的修改或是什么别的:实现给特定文章提供一个RSS feed,只需使用comment_rss_link() 功能:
< ?php comments_rss_link(’&#187; Comments RSS Feed’); ?>
来源:WordPress how to: provide an RSS feed for the comments in each post
6. 从你的RSS Feed中排除分类
问题:你是否使用了一个博客分类来让读者了解你的网站新闻,或是你的Blog的有一个分类对其余的内容来说一点用也没有?如果是,那么把它包括在你的RSS feed中就不是一个好主意。
解决方案:怎样从你的RSS feed中去掉一个分类:
1. 首先,找到你要排除掉的分类的数字ID。如果你不知道怎么找到一个特定分类的ID,你可以先看看这篇文章。
2. 当你知道了你要从RSS feed中排除的ID,编辑你的主题的functions.php文件。如果它不存在,创建之。
3. 将下面的代码复制进去:
  • function myFilter($query) {
  • if ($query->is_feed) {
  • $query->set(’cat’,'-5′); //Don’t forget to change the category ID =^o^=
  • }
  • return $query;
  • }
  • add_filter(’pre_get_posts’,'myFilter’);
  • 4.保存文件,搞定!
  • 代码解释: 这次修改实际上和之前说的那个一样:创建一个自动以的功能来排除那个你不想让它出现在RSS feed中的类别,然后使用非常有用的add_filter() 功能来让它在这个Wordpress核心功能pre_get_posts() 上提交。来源:Excluding posts from your WordPress feed

    7. 在你的WordPress Blog上显示任意RSS
BODY {font-family: 宋体;font-size: 10pt;}问题:你是否有好几个Blog,或者你还管理着一个论坛?如果是,你可能需要在你的WordPress Blog上显示各种RSS feed。解决方案:很多插件都能实现这个功能,但是其实没必要用它们。Wordpress有一个可以利用的内建RSS 阅读器,比如,在你的Dashboard上显示新闻。你要做的就是把它用到你的主题上。1. 将下面的代码复制到你的主题中的任何地方(我个人将它放到了侧边栏之中,页脚也行,或者,放到页面模板里面):
  • < ?php include_once(ABSPATH.WPINC.’/rss.php’);
  • wp_rss(’http://feeds.feedburner.com/wprecipes’, 3); ?>
    BODY {font-family: 宋体;font-size: 10pt;}2.保存,搞定,就这么简单!
    代码解释:首先我们从WordPress核心中把rss.php文件包括进来。这个文件允许我们使用wp_rss() 功能,此功能有两个参数,一个是RSS feed的地址,另一个是要显示的RSS条目的数量。
    来源:How to: Display any RSS feed on your WordPress blog

    8. 使用指定分类RSS Fee0ds


BODY {font-family: 宋体;font-size: 10pt;}
问题:很多Blog都在谈论大量不同的话题:设计,变成,Blog技巧等等。你是否遇到过一个你只喜欢其中一个分类文章的Blog?如果是,你绝对应该考虑为你自己的读者准备各分类单独的Feed。
解决方案:如果你只是想订阅Wopus中文平台的某一个分类文章,比如你想订阅基础教程(http://www.wopus.org/category/wordpress-basic/)的文章,那么只需要在 基础教程 这个分类后面添加feed就好了,即:
http://www.wopus.org/category/wordpress-basic/feed
9. List RSS Feeds by Category 将RSS Feeds按分类列出


BODY {font-family: 宋体;font-size: 10pt;}问题:如果你喜欢上面这样的样式,你也许会想将你所有的分类feed按列表为你的读者列出。解决方案:
1. 编辑你的主题的任意文件,把你想列出的分类和它的feed编辑到任何你想放置的位置对应文件之中。
2. 复制下列代码:
  • < ?php wp_list_categories(’feed_image=http://www.myblog.com/image.gif&feed=XML Feed&optioncount=1&children=0′); ?>
BODY {font-family: 宋体;font-size: 10pt;}.保存文件,现在你的分类就可以和它们对应的feed一起显示了!

代码解释:这个修改只用了带两个参数的功能。第一个是feed_image,它允许我们将指定URL显示为一个feed图片。第二个参数是feed,它用来指定feed格式。



10. 干净的去掉RSS Feeds

BODY {font-family: 宋体;font-size: 10pt;}
问题:比如你在把Wordpress作为一个CMS来用,用来管理你的在线文件夹或是你的公司网站。在这种情况下,RSS feed就不再那么有用了。有些人也许会想移除它。
解决方案:我看过网上很多”修改”是说,你只需移除Wordpress核心文件wp-settings.php中的include。我并不认为你需要编辑核心文件。取而代之的,下面的修改会完成这件事。只需将下面的代码复制到你的主题的functions.php中:
  • function fb_disable_feed() {
  • wp_die( __(’No feed available,please visit our <a href=”‘. get_bloginfo(’url’) .’”>homepage</a>!’) );
  • }
  • add_action(’do_feed’, ‘fb_disable_feed’, 1);
  • add_action(’do_feed_rdf’, ‘fb_disable_feed’, 1);
  • add_action(’do_feed_rss’, ‘fb_disable_feed’, 1);
  • add_action(’do_feed_rss2′, ‘fb_disable_feed’, 1);
  • add_action(’do_feed_atom’, ‘fb_disable_feed’, 1);
BODY {font-family: 宋体;font-size: 10pt;}来源:Disable WordPress feed

后记:关于作者
这篇文章的作者是Jean-Baptiste Jung,一个26岁的比利时Blogger。他在两处写博,一处是WpRicepes上写关于Wordpress的,另一处则是在Cats Who Code上写任何有关于博客和编程的文章。你可以通过Follow Jean的Twitter(http://twitter.com/catswhocode)来和他联系。


转自:http://www.wpservice.org/

Archiver|手机版|小黑屋|乱弹琴|重庆网址之家|多来米发 |

GMT+8, 2026-10-13 10:55 PM

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表