有人可以解释为什么这个查询不起作用吗? 我想排除用主页标记的帖子。 它仍会显示带有类别名称'主页' ...
的帖子<?php
$query = new WP_Query( 'category_name=-homepage');
?>
<?php if ( $query->have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php
get_template_part( 'content', 'news' );
?>
<?php endwhile; ?>
<?php the_posts_navigation(); ?>
<?php else : ?>
<?php get_template_part( 'content', 'none' ); ?>
<?php endif; ?>
答案 0 :(得分:7)
如果在排除类别的情况下在文档中给出,您必须使用其ID而不是slug(检查here)。
你可以尝试:
$query = new WP_Query( array( 'category__not_in' => array( 11 ) ) );
答案 1 :(得分:2)
您的代码中有2个问题。
您使用slug而不是ID来排除某个类别,并且您没有正确使用自定义查询循环。
<?php
$query = new WP_Query( array(
'cat' => -5, // replace with correct category ID.
) );
if ( $query->have_posts() ) :
// make sure we use have_posts and the_post method of our custom query.
while ( $query->have_posts() ) : $query->the_post();
get_template_part( 'content', 'news' );
endwhile;
else:
get_template_part( 'content', 'none' );
endif;
超出初始问题的范围,您无法在自定义循环中使用the_posts_navigation()
。它作用于全球$wp_query
。我怀疑你可能想要查看pre_get_posts
过滤器。
进一步阅读:
http://codex.wordpress.org/Class_Reference/WP_Query#Category_Parameters
http://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts