获取不包含特定标签的帖子

时间:2016-03-30 作者:Danny

我想获取所有不包含标记“index”的帖子。如何做到这一点?

我的意思是相反的

get_posts(array(\'tag\' => \'index\'))
谢谢你

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

你可以试试tax_query 使用\'NOT IN\' 操作员(未测试)

$myposts = get_posts( 
    [
        \'tax_query\' => [
            [ 
                \'taxonomy\' => \'post_tag\',
                \'terms\'    => [ \'index\' ],
                \'field\'    => \'slug\',
                \'operator\' => \'NOT IN\',
            ]      
        ]
    ]
);
其中,标签的分类slug是post_tag.

SO网友:Kom

根据WordPress Codex,您应该对任何post类型的询问使用自定义查询。假设您的分类法是“post\\u tag”,而不是“tag”,请使用以下代码:

$args=数组(
“post\\u type”=>“post”,
“tax\\u query”=>数组(
数组(
“taxonomy”=>“post\\u tag”,
“field”=>“slug”,
“terms”=>“array(\'index”),
“operator”=>“NOT IN”)));

$custom\\u query=新的WP\\u查询($args);while($custom\\u query->have\\u posts()){$custom\\u query->the\\u post();//您的自定义代码}