检查wp循环中的类别

时间:2014-05-25 17:44:09

标签: wordpress wp-query

我有一个wp查询循环。我想检查帖子是否属于某些类别。我可以使用the_category()获取该类别。我试过了

if(the_category()==`car`){do somthing}

以及如何将除汽车类别之外的所有剩余帖子推送到所有' car'类别。

2 个答案:

答案 0 :(得分:1)

the_category()会返回多个类别。

您可能想尝试get the category

$categories = get_the_category();
foreach($categories as $cat) {
  if($cat->cat_name == 'car') {
     // do something
  }
}

答案 1 :(得分:1)

您可以在此处运行两个查询。第一个查询获取汽车护理的所有帖子。第二个查询获取除car类别的帖子之外的所有其他帖子。只需记住使用汽车类别的ID更改CATID FOR CAR,并且不要忘记第二个查询中ID之前的减号。减号表示排除。

您可以在codex中详细了解:WP_Query

$do_not_duplicate = array();

$args = array(
   'cat' => CATID FOR CAR
);

$carargs = new WP_Query( $args );

if( $carargs->have_posts()):

  while ($carargs->have_posts()) : $carargs- >the_post(); 
  $do_not_duplicate[] = $post->ID; 

<----your loop---->

  endwhile; 

endif;

wp_reset_postdata(); 


$args2 = array(
   'cat' => -CATID FOR CAR,
   'post__not_in' => $do_not_duplicate
);

$restargs = new WP_Query( $args2 );

if( $restargs->have_posts()):

  while ($restargs->have_posts()) : $restargs- >the_post(); 
   $do_not_duplicate[] = $post->ID; 

<----your loop---->

  endwhile; 

 endif;

wp_reset_postdata();