wordpress - category__not_in 不起作用

Mic*_*uni 5 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);
?>
Run Code Online (Sandbox Code Playgroud)

我已经试过了:

'category__not_in' => array( '44' ),
'category__not_in' => array( 44 ),
'category__not_in' => '44',
'category__not_in' => 44,
Run Code Online (Sandbox Code Playgroud)

但没有任何效果=(

Pra*_*Rao 10

尝试使用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);
?>
Run Code Online (Sandbox Code Playgroud)


Jor*_*bot 5

'cat' => '-44'在您的$args阵列中使用:

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

这是WP Codex 中推荐的方式。


Mic*_*uni 5

谢谢大家,感谢@rnevius

问题出在我的查询中,我使用的是WP_Query()and 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();
?>
Run Code Online (Sandbox Code Playgroud)