如何从POST循环中排除自定义分类

时间:2011-03-16 作者:Thomas

是否有一种简单或简单的方法可以将所有帖子从循环中的自定义分类中排除?我一直在到处寻找,SE、SO和谷歌似乎都没有一个明确的答案。

我知道这可以通过WPDB查询来完成,但这似乎是一条非常简单的跳绳。

6 个回复
最合适的回答,由SO网友:aniskhan001 整理而成

您可能想使用NOT EXISTS 运算符并传递分类法slug,该slug告诉查询不要在循环中包含自定义分类法中选择的任何类别。

要排除分类法“水果”中的所有帖子(不考虑水果种类),以下是片段:

$args = array(
    \'post_type\'      => \'post\',
    \'tax_query\'      => array(
        array(
            \'taxonomy\' => \'fruit\',
            \'operator\' => \'NOT EXISTS\'
        )
    )
);

$query = new WP_Query( $args );

SO网友:Dwayne Charrington

解决这一问题的方法并没有那么公开,但应该公开。

You can do the following:

$args[\'tax_query\'] = array(
    array(
        \'taxonomy\' => \'category\',
        \'terms\' => array(\'cat\', \'dog\'),
        \'field\' => \'slug\',
        \'operator\' => \'NOT IN\',
    ),
);
query_posts($args);
运算符参数可以采用其他术语,但上面的代码基本上是说获取分类法“category”中没有术语“cat”或“dog”的所有帖子。

SO网友:Tim Bowen

以下是如何为自定义帖子类型和自定义分类法执行此操作:

$happening = new WP_Query(
array( 
  \'post_type\'  => \'news\',        // only query News post type
  \'tax_query\' => array(
    array(
        \'taxonomy\'  => \'news-cat\',
        \'field\'     => \'slug\',
        \'terms\'     => \'media\', // exclude items media items in the news-cat custom taxonomy
        \'operator\'  => \'NOT IN\')

        ),
   )
);
这非常适合从自定义帖子类型中排除自定义分类法。。只想添加查询循环代码来完成代码段:while($the\\u query->have\\u posts()):$the\\u query->the\\u post();

SO网友:erachnid

为了从某个分类术语中排除帖子,我做了以下操作:

$argos = array( 
    \'tax_query\' =>  array (
        array(
            \'taxonomy\' => \'topics\', // My Custom Taxonomy
            \'terms\' => \'college\', // My Taxonomy Term that I wanted to exclude
            \'field\' => \'slug\', // Whether I am passing term Slug or term ID
            \'operator\' => \'NOT IN\', // Selection operator - use IN to include, NOT IN to exclude
        ),
    ),
    \'post_type\'=>\'page\', // Post type I want to show, can be a custom post type too
    \'posts_per_page\' => -1,
    \'orderby\' => \'title\',
    \'order\'=>\'ASC\',
    \'post_parent\' =>$post->ID // show child posts or pages of current page/post
); 

$query = new WP_Query( $args );

SO网友:subhash jangid

query_posts( array(
    \'post_type\' => \'listings\',
    \'tax_query\' => array(
        array(
            \'taxonomy\' => \'status\',
            \'field\'    => \'slug\',
            \'terms\'    => \'sold\',
            \'operator\' => \'NOT IN\'
            ),
        )
    )
);
此代码不包括post\\u type=>列表中的status=>Seld

SO网友:adamf

我使用的“RYO”类别可见性“WordPress插件”似乎工作得很好。

您可以在管理页面上决定哪些类别是可见的或从各个区域中排除的。

http://ryowebsite.com/wp-plugins/category-visibility/

-亚当

结束

相关推荐

Paging in a sidebar mini loop

我切换到了另一个主题,并决定用其中的一些默认代码制作一个小部件,在自定义循环中显示我的美味帖子、推特帖子、su帖子和youtube视频(不包括主循环中的这些类别)。但是现在。。。分页不再工作。我制作了这个小部件:// =============================== EDL Sidebar Posts Widget ====================================== class SidebarPosts extends WP_Widget { &#x