Wordpress 检查wp循环中的类别

Wordpress 检查wp循环中的类别,wordpress,Wordpress,我有一个wp查询循环。我想检查一下这篇文章是否属于某些类别。我可以使用类别()获取类别。我试过了 if(the_category()==`car`){do somthing} 以及如何将除汽车类别之外的所有其他帖子推送到所有“汽车”类别 类别()返回许多类别 你可能想试试 您可以在这里运行两个查询。第一个查询获取来自汽车管理员的所有帖子。第二个查询获取除来自car类别的帖子之外的所有其他帖子。只需记住使用车辆类别的id更改CATID FOR CAR,并且在第二次查询中不要忘记id前的减号。减号

我有一个wp查询循环。我想检查一下这篇文章是否属于某些类别。我可以使用
类别()
获取类别。我试过了

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

以及如何将除汽车类别之外的所有其他帖子推送到所有“汽车”类别

类别()返回许多类别

你可能想试试


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

您可以在法典中阅读更多关于这方面的内容:

$do_not_duplicate=array();
$args=数组(
“cat”=>汽车的CATID
);
$carargs=新的WP_查询($args);
如果($carargs->have_posts()):
而($carargs->have_posts()):$carargs->the_post();
$do_not_duplicate[]=$post->ID;
结束时;
endif;
wp_reset_postdata();
$args2=数组(
“cat”=>-汽车的CATID,
'post_unot_in'=>$do_not_duplicate
);
$restargs=新的WP_查询($args2);
如果($restargs->have_posts()):
而($restargs->have_posts()):$restargs->the_post();
$do_not_duplicate[]=$post->ID;
结束时;
endif;
wp_reset_postdata();

以及如何将除汽车类别之外的所有其他帖子推送到所有“汽车”类别。请参阅更新的问题我无法通过循环进行迭代。当尝试echo gettype(_category())时;它显示为空。但是,echo the_category()有输出。您是否需要先显示
car
类别中的帖子,然后显示不属于
car
类别的所有其他帖子?@PieterGoosen是的。我确实已经这样做了。但是分页问题。如果有多个循环,我不能使用分页。请看我的这个问题。你需要对两个查询都分页,还是只对第二个查询分页?我只想每页显示10篇文章。若第一个查询有超过10篇文章,那个么它应该有分页。若第一个查询少于10,则不需要分页,只需第二个查询。查看此演示(不起作用)这里第一个查询只有一个具有不同风格的帖子。请查看。听起来它可能就是你要找的东西
$categories = get_the_category();
foreach($categories as $cat) {
  if($cat->cat_name == 'car') {
     // do something
  }
}
$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();