具有多个分类的WP查询?

时间:2013-05-25 作者:Bhuvnesh

你好,我想得到所有属于多个分类法的帖子。我在codex上看到过,但它只有静态(2)分类法,但在我的例子中,分类法的数量是可变的。

在Codex网站上,这是代码。。。

$args = array(
    \'post_type\' => \'post\',
    \'tax_query\' => array(
        \'relation\' => \'AND\',
        array(
            \'taxonomy\' => \'movie_genre\',
            \'field\' => \'slug\',
            \'terms\' => array( \'action\', \'comedy\' )
        ),
        array(
            \'taxonomy\' => \'actor\',
            \'field\' => \'id\',
            \'terms\' => array( 103, 115, 206 ),
            \'operator\' => \'NOT IN\'
        )
    )
);
$query = new WP_Query( $args );
但分类法可以是2个以上,也可以是1个。所以,如何循环不同数量的分类法。

我想要这样http://software.pricegrabber.com/office-suites/p/169/

请帮忙!!

1 个回复
SO网友:s_ha_dum

你可以有两个以上。您可以有任意多个,但如果您尝试使用太多,可能会导致性能下降。我希望这是真的,尤其是如果你使用OR 关系

有关创建tax_query 动态阵列。

https://wordpress.stackexchange.com/a/97444/21376

为了适应您的环境,只需将每个术语与其分类法相关联。

$def = array(
    \'field\' => \'slug\',
    \'operator\' => \'NOT IN\'
);

$cities = array(
    \'boston\' => \'tax_city\',
    \'chicago\'  => \'tax_city\',
    \'texas\'  => \'tax_state\',
    \'california\'  => \'tax_state\'
);

$args = array(\'relation\' => \'OR\');

foreach ($cities as $term => $tax) {
  $args[] = wp_parse_args(
    array(
      \'taxonomy\'=>$tax,
      \'terms\'=>$term
    ),
    $def
  );
}
print_r($args); 
可以对嵌套循环执行相同的操作。

$cities = array(
  \'tax_city\' => array(
    \'boston\',
    \'chicago\'
  ),
  \'tax_state\' => array(
    \'texas\',
    \'california\'
   )
);

foreach ($cities as $tax => $terms) {
  foreach ($terms as $term) {
    $args[] = wp_parse_args(
      array(
        \'taxonomy\'=>$tax,
        \'terms\'=>$term
      ),
      $def
    );
  }
}
print_r($args);

结束

相关推荐

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

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