有没有办法从所有 Wordpress 的 RSS 提要(默认以及标签、类别和搜索提要)中排除帖子?
问问题
3610 次
1 回答
6
假设您不想使用THIS ONE或THIS之类的插件,您有很多方法:
一种是为您想要排除的帖子分配一个类别,然后您可以像这样更改 RSS 链接的 URL:
http://www.mydomain.com/feed?cat=-x,-y,-z
您还可以使用以下功能进行过滤:
function o99_my_rss_filter($query) {
if ($query->is_feed) {
$query->set('cat','-7'); //Put category ID - here it is : 7
}
return $query;
}
add_filter('pre_get_posts','o99_my_rss_filter');
关键是您需要分配 SOMETHING(标签、自定义字段、类别)来标识要排除的内容,假设您不希望总是添加要从查询中排除的 ID。
如上所示,最简单的是按类别。
* *编辑我 **
只是为了它 - (我仍然推荐 cetegory 方法) r 即使我不喜欢过度使用的自定义字段 - 这是通过分配自定义字段来更改查询的另一种方法:
function o99_my_rss_filter_by _field( $where, $wp_query = NULL ) {
global $wpdb;
if ( !$wp_query ) global $wp_query;if ( $wp_query->is_feed ) {
$posts = get_posts( array( 'meta_key' => 'norss' ) );
if ( $posts ) {
foreach( $posts as $post ) {
$exclude .= $post->ID . ',';
}
}
$exclude = substr( $exclude,0, strlen( $exclude )-1 );
$where .= ' AND $wpdb->posts.ID NOT IN ( ' . $exclude . ')';
}
return $where;
}
add_filter( 'posts_where', 'o99_my_rss_filter_by _field', 1, 4 );
于 2012-06-06T05:59:58.157 回答