10个实用的WordPress RSS技巧

添加评论 2008年12月8日

大家都知道,RSS是一项极其简单又极其强大的技术。RSS Feed对于大多数人的互联网生活,已经是必不可少的部分。由于其方便和效率,越来越受关注,甚至追捧。特别是WordPress非常重视这一点。比如提 交到WordPress官方主题目录的主题,都需要在明显的地方显示RSS Feed图标。所以,今天,介绍一下来自Smashing Magazine的《10 Useful RSS-Tricks and Hacks For WordPress》吧,给你10个优化WordPress Feed的方法。RSS是一项极其简单又极其强大的技术。目前, RSS是博客聚合的标准,它广泛应用于个人和企业的设置,例如在博客中使用。并且由于搭建博客的用户中,使用WordPress的比例很高,所以我们在本文里面将介绍一些有用的RSS有关的技巧和窍门,可以帮助你以一个更有效的方式使用RSS-且不需要任何的WordPress插件。

1. 控制文章RSS的输出时间

出现问题: 发表一篇文章,但立即发现有错误要改。可是RSS已经输出,而让读者看到错误的信息?

解决方法: 把下面的代码拷贝到你主题的function.php文件,如果没有的话,新建一个以function.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/5.0/en/date-and-time-functions.html#function_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’); 

代码功能: 上面的代码会让你的文章迟5分钟输出Feed。如果你想改变迟延的时间,修改代码中的$wait = ‘5′,5代表5分钟。

2. 重定向你的WordPress Feeds到FeedBurner

出现问题: 新手在使用WP的时候,通常不会使用RSS Feed的Feedburner的烧制服务。而当他开始使用的时候,别人已经订阅了原始的Feed,并且这个Feed地址通常与服务商提供的网址不同。另外的问题是,你经常换主题吗? 如果是,我想你也会对每次都需把bloginfo(’rss2_url’) 换成自己的feed地址而感到烦。

解决方法: 解决这些问题的方法就是,利用服务器的重定向功能。

  1. 新建(修改)在一个.htaccess文件,上传到服务器中WP的根目录;
  2. 编辑.htaccess文件,把下面的代码复制到里面去,当然,可别忘了把地址修改成你自己的:
    # temp redirect wordpress content feeds to feedburner
    <IfModule mod_rewrite.c>
    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]
    </IfModule>
  3. 保存文件,完成!

3. 插入广告(或其他东西) 到你的RSS Feed

出现问题: 利用RSS Feed来增加收入已经成为一个非常普通的行为。但FeedBurner只能插入Google Adsense。可是你又不知道如何插入别的广告或者内容。

解决方法: 嘿嘿,这是可以解决的问题。你可以为你的Rss读者提供只能在Feed中见到的内容,比如一个WP主题。

你面要做的是,按下面的步骤做一篇:

  1. 编辑functions.php,当然,像上面说的到,如果没有,新建一个;
  2. 把下面的代码复制进这个文件:
    <?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. 保存它,这就能显示了在你的RSS feed中啦!

代码功能: 这功能也可以通过修改内核来实现。不过,这并不是一个好方法。因为在每次升级的时候,会有麻烦。利用上面的方法,使用WP中的add_filter()功能,这样会更方便修改。

4. 让图片在RSS Feed中显示定义样式

出现问题: 你努力地把文章变得漂亮起来,图文并茂,不过,当然文章出现在RSS Feed阅读器中的时候,却不幸地显示得非常难看。

解决方法: 这个问题的事实就是作者把图片放在文本内行:

解决这个问题就是修改你的CSS文件,使你的图片显示block值,而WP中内置了 “center“这个类,比如:

<img src="http://78.46.108.98/images/wordpress-rss-hacks/myimage.jpg"   alt="This is my image" class="center" />

相关资源:

5. 为你的读者提供每篇文章的RSS Feed

出现问题: 当一篇文章有很多评论的时候,每个评者都很有可能无法及时得到评论的通知。事实上,很多主流的博客程序,都会提供单篇文章的评论RSS Feed。

解决方法: Well, this recipe isn’t really a hack or anything: to provide an RSS feed for the comments in a particular post, just call the comment_rss_link() function:

<?php comments_rss_link('&raquo; Comments RSS Feed'); ?>

6. 让特定分类不在RSS Feed中显示

出现问题: 你是否有一些诸如记录网站成长等的分类,它们与你关注的内容并不同,很多人认为这并不适合在RSS feed中显示,当然,虽然我不觉得如此,但一旦你想让特定的分类不在RSS Feed中显示的话。

解决方法: 来吧,按照下面的方法一步一步来:

  1. 首先要做的是找到这个你不想显示的分类的ID,如果你不知道如何找出这个分类ID,可以看一下这篇文章.
  2. 打开你主题的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');

7. 在你的Wordpress博客显示任何 RSS Feed

出现问题: 是否一个人管理多个博客,或者还有论坛呢?或者说想显示某些网站的RSS Feed?

解决方法: 很多插件可以解决这个问题。不过,WP内置了一个小型的RSS feed 阅读器,比如后台首页显示的RSS。而你要做的就是,把这个阅读器运用到你的主题里面:

  1. 把下面的的代码复制到你主题的任何地方, (个人建议在sidebar, footer,甚至可以在页面中显示):
    <?php include_once(ABSPATH.WPINC.'/rss.php');       wp_rss('http://feed.parandroid.com', 3); ?>
  2. 保存,不过,记得把上面RSS feed URL改成你自己的。

8. 为每个分类提供分开的 RSS Feeds

出现问题: 大多数人关注不同的问题,比如设计、评论等,但是,读者有可能只是喜欢你的某个类型。

解决方法: 订阅某个分类的RSS Feed, 你只要在URL后面加上/feed 如下,就可以只订阅这个分类的内容了:

9. 显示分类的RSS Feed列表

出现问题: 像上面所说的,你可能出现像上面一样的问题,但并不是所有人都知道怎么获得单个分类的feed地址。

解决方法:

  1. 候改你的主题,想想要显示分类的地方加上下面的代码:
  2. <?php wp_list_categories('feed_image=http://www.myblog.com/image.gif&feed=XML Feed&optioncount=1&children=0'); ?>
  3. 保存,就OK啦! 上面引用的图片是来自yahoo的myblog

10. Get Rid of RSS Feeds the Clean Way

出现问题: 你可以利用Wordpress来制作一个CMS,管理你的档案或者公司,这时,RSS feed并不是很重要。所以,删除掉它。

解决方法: 我见过很多hack,比如修改 include 中的 wp-settings.php文件。不过,修改内核并不是理想的做法,而更好的方法是,在你主题中的functions.php 加入页面的代码,来停用Feed:

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);

: 英文原文由之前介绍过的WP国外达人WpRecipes发布于SmashingMagzine,中文翻译完全由达人Sofish翻译, 详见1, 2。


欢迎转载,转载请注明: 转载自 网贝WebBeta

本文链接地址: 10个实用的WordPress RSS技巧

  1. 还没有评论.想坐沙发?
  1. 还没有 trackbacks
订阅评论