WordPress RSS Feed 优化/设置技巧六则

3,858
WordPress RSS Feed 优化/设置技巧六则
  • 4.20 / 5 5
4.20分(5票)

本站DeveWork.com 在之前已经分享过不少有关 RSS Feed 优化、设置技巧,今天在这里分享多篇来自网络上的文章,攫取相关重要内容,加上之前的汇总为本文。需要说明的是,本文相关代码 Jeff 没有亲自测试是否有效,有需要的请自行测试使用。

在RSS Feed 中输出版权信息

在RSS Feed 中输出版权信息

这个功能主要是为了防止文章被恶意采集而产生的;当然,如果人家是直接复制粘贴来采集你的文章的话,这个功能就没意义了。详细请参考《WordPress在RSS Feed 中输出版权信息》一文。

在RSS Feed 中输出自定义特色图像(缩略图)

在RSS Feed 中输出自定义特色图像(缩略图)

一般来说,如果主题支持特色图像(缩略图)这个功能就有存在的意义了,详细请参考《WordPress在RSS Feed 中输出自定义特色图像(缩略图)》一文。该方法支持通过自定义字符获取的特色图像。

控制文章RSS的输出时间

控制文章RSS的输出时间

你有没有试过发表一篇文章,但立即发现有错误需要修改,可是在这个时候你的文章的RSS已经输出,也说不定已经有读者阅读了。 对于这个问题,我们可以通过控制文章RSS的输出时间(延时)来解决,在主题的function.php文件加入以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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');
在RSS Feed中插入广告(或其他东西)

在RSS Feed中插入广告(或其他东西)

这个的话比较绝,不建议使用。在主题的主题的function.php文件加入以下类似的代码就可以实现:

1
2
function insertAds($content) { 
$content = $content.'

DeveWork,about WordPress.


‘; return $content; } add_filter(‘the_excerpt_rss’, ‘insertAds’); add_filter(‘the_content_rss’, ‘insertAds’);

禁用WordPress 中的RSS Feeds

禁用WordPress 中的RSS Feeds

如果你的文章不想被人订阅,可以禁止WordPress 的RSS feed 输出,在主题的function.php文件加入以下代码:

1
2
3
4
5
6
7
8
function wp_disable_feed() {
	wp_die( __('抱歉,本站不支持订阅,请返回<a href="'. get_bloginfo('url') .'">首页</a>') ); 
}
add_action('do_feed', 'wp_disable_feed', 1);
add_action('do_feed_rdf', 'wp_disable_feed', 1);
add_action('do_feed_rss', 'wp_disable_feed', 1);
add_action('do_feed_rss2', 'wp_disable_feed', 1);
add_action('do_feed_atom', 'wp_disable_feed', 1);

在RSS Feed 中排除某个分类

 在RSS Feed 中排除某个分类

如果你不想在RSS Feed 中输出某个分类下的文章,可以使用以下代码:

1
2
3
4
5
6
7
function exclude_cat_feed($query) {
	if(is_feed()) {
		$query->set('cat','-1'); //排除ID为 1 的分类
		return $query;
	}
}
add_filter('pre_get_posts', 'exclude_cat_feed');

如果要排除多个分类,将第 3 行修改为下面的代码:

1
$query->set('cat','-1, -2, -3'); //排除ID为 1、2、3 的分类

喵~本文目前有2条留言,欢迎发表评论!

  1. 传说中的沙发
    :

    怎么自定义 RSS feed 的样式?

    [回复]
    • RSS feed 的样式应该只能是内联样式

      [回复]

打破沉默,我来发表评论鸟~