WordPress RSS Feed 优化与设置,本文相关代码搜集于网格,梦飞扬没有亲自测试是否有效,有需要的请自行测试使用。
控制文章RSS的输出时间
你有没有试过发表一篇文章,但立即发现有错误需要修改,可是在这个时候你的文章的RSS已经输出,也说不定已经有读者阅读了。 对于这个问题,我们可以通过控制文章RSS的输出时间(延时)来解决,在主题的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');
在RSS Feed中插入广告(或其他东西)
在RSS Feed中插入广告不建议使用。若使用请在主题的function.php文件加入以下类似的代码就可以实现:
function insertAds($content) { $content = $content.'
禁用WordPress 中的RSS Feed
如果你的文章不想被人订阅,可以禁止WordPress 的RSS feed 输出,在主题的function.php文件加入以下代码:
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 中输出某个分类下的文章,可以使用以下代码:
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 行修改为下面的代码:
$query->set('cat','-1, -2, -3'); //排除ID为 1、2、3 的分类