需要排除APP_TAX_STORE=>$Term->slug

时间:2019-02-02 作者:joloshop

我有以下代码:

query_posts( array(
                        \'post_type\' => APP_POST_TYPE,
                        \'post_status\' => \'publish\',
                        \'posts_per_page\' => 4,
                        ),                      
                    ) );
现在我需要从此查询中删除所有帖子APP_TAX_STORE => $term->slug

这意味着我需要显示除此分类法中的帖子以外的所有帖子。

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

Okay找到了一个同样有效的解决方案:

query_posts( array(
  \'post_type\'      => APP_POST_TYPE,
  \'post_status\'    => \'publish\',
  \'posts_per_page\' => 4,
  \'tax_query\'      => array(
    array(
      \'taxonomy\' => APP_TAX_STORE,
      \'field\'    => \'slug\',
      \'terms\'    => $term->slug,
      \'operator\' => \'NOT IN\',
    ),
  ),
) );

SO网友:phatskat

我能看到的最简单的方法是收集该分类法中的术语列表,并将它们与NOT IN 查询中的运算符tax_query:

// Get all the terms in your custom taxonomy.
$slugs = get_terms( [
    \'taxonomy\' => \'industry\',
    \'fields\'   => \'slugs\',
] );

$posts = query_posts( [
    \'post_type\'      => \'post\',
    \'posts_per_page\' => 4,
    \'post_status\'    => \'publish\',
    \'tax_query\'      => [
        [
            \'taxonomy\' => APP_TAX_STORE,
            \'operator\' => \'NOT IN\',
            \'field\'    => \'slug\',
            \'terms\'    => $slugs, 
        ]
    ]
] );
我建议你在query_posts 如果你还没有-注意警告,它可能会导致混乱和麻烦。get_posts 应该可以得到相同的结果,而无需覆盖主查询。

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post