3

有没有办法从所有 Wordpress 的 RSS 提要(默认以及标签、类别和搜索提要)中排除帖子?

4

1 回答 1

6

假设您不想使用THIS ONETHIS之类的插件,您有很多方法:

一种是为您想要排除的帖子分配一个类别,然后您可以像这样更改 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 回答