如果wp_Query分类术语有帖子

时间:2015-10-21 作者:simbasounds

在为页面模板上的自定义分类制定了$查询之后,我将如何询问特定术语是否有帖子?

$args = array(
    \'post_type\' => \'exhibitions\',
    \'tax_query\' => array(
        array(
            \'taxonomy\' => \'exhibition\',
            \'field\'    => \'slug\'
        ),
    )
);
$query = new WP_Query($args);
假设我在正确的轨道上,我要寻找的条件语句类型的口头描述是:

如果$query分类术语“current”有帖子,请采取措施;

否则,如果$query分类术语“即将到来”有帖子,请做其他事情;

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

我不确定你到底需要什么,但通常情况下,默认情况下,get_terms 只返回实际分配了帖子的术语

$terms = get_terms( \'exhibition\' );
var_dump( $terms );
除此之外,我真的不知道你到底需要什么

SO网友:s_ha_dum

听起来你想has_term(). 类似于:为查询提供一个术语数组:

$args = array(
    \'post_type\' => \'exhibitions\',
    \'tax_query\' => array(
        array(
            \'taxonomy\' => \'exhibition\',
            \'field\'    => \'slug\',
            \'terms\' => array(
              \'current\',
              \'upcoming\',
            ),
        ),
    )
);
$query = new WP_Query($args);
然后在其上循环多次:

if ($query->have_posts()) {
  while ($query->have_posts()) {
    $query->the_post();
    if (has_term(\'current\',\'exhibition\')) {
      // stuff
    }
  }
}
$query->rewind_posts();
if ($query->have_posts()) {
  while ($query->have_posts()) {
    $query->the_post();
    if (has_term(\'upcoming\',\'exhibition\')) {
      // stuff
    }
  }
}
$query->rewind_posts();

相关推荐

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

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