我在查询函数时遇到问题。我需要运行循环,不包括特定类别。
我正在尝试使用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,
但没有任何作用=(
答案 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);
?>