wordpress - category__not_in不工作

时间:2016-03-23 12:25:23

标签: php wordpress

我在查询函数时遇到问题。我需要运行循环,不包括特定类别。

我正在尝试使用category__not_in,但根本没有工作。

<?php
  $args = array(
    'post_type' => 'post',
    'post_status' => 'publish',
    'category__not_in' => array( '44' ),
    'posts_per_page' => 9,
    'paged' => get_query_var('paged')
  );
  $query = new WP_Query( $args );

  query_posts($query);
?>

我已经尝试过了:

'category__not_in' => array( '44' ),
'category__not_in' => array( 44 ),
'category__not_in' => '44',
'category__not_in' => 44,

但没有任何作用=(

3 个答案:

答案 0 :(得分:3)

'cat' => '-44'数组中使用$args

$args = array(
    'post_type' => 'post',
    'post_status' => 'publish',
    'cat' => '-44',
    'posts_per_page' => 9,
    'paged' => get_query_var('paged')
);

这是description中建议的方式。

答案 1 :(得分:3)

谢谢大家,感谢@rnevius

问题出在我的查询中,我使用的是WP_Query()query_posts()

我使用了如何参考WP Codex:https://codex.wordpress.org/Class_Reference/WP_Query

以下是我的代码最终的结果:

<?php
  $args = array(
    'post_type' => 'post',
    'post_status' => 'publish',
    'category__not_in' => array( 44 ),
    'posts_per_page' => 9,
    'paged' => get_query_var('paged')
  );
  $query = new WP_Query( $args );
?>

<?php
  if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
      $query->the_post();
?>

// code

<?php
    }
  } else {
    // no posts found
  }
  wp_reset_postdata();
?>

答案 2 :(得分:3)

请尝试使用tax_query:

<?php
  $args = array(
    'post_type' => 'post',
    'post_status' => 'publish',
    'posts_per_page' => 9,
    'paged' => get_query_var('paged'),
    'tax_query' => array(
        array(
            'taxonomy' => '<YOUR TAXONOMY NAME>',
            'field'    => 'term_id',
            'terms'    => array( 44 ),
            'operator' => 'NOT IN',
        ),
    ),

  );
  $query = new WP_Query( $args );

  query_posts($query);
?>