我试图做的是在Wordpress的索引页面上运行两个单独的循环:
没有来自第5类的帖子
和
只有5类的帖子
我一直接近正确的结果,但是第一个循环在第二个循环中显示了我想要的东西(这让我感到困惑)和一堆其他异常。
以下是代码:
循环1:
<?php $blogPreview = new WP_Query('cat=-5'); ?>
<?php if ( $blogPreview->have_posts() ) : ?>
<?php while ( $blogPreview->have_posts() ) : $blogPreview->the_post(); ?>
<?php the_post(); ?>
<?php get_template_part( 'content-index', get_post_format() ); ?>
<?php endwhile; ?>
<?php else : ?>
Sorry, but there are currently no posts in the blog!
<?php endif; ?>
<?php wp_reset_query(); ?>
循环2(在我的标记中略低于循环1):
<?php $testimonials = new WP_Query('cat=5'); ?>
<?php if ( $testimonials->have_posts() ) : ?>
<?php while ( $testimonials->have_posts() ) : $testimonials->the_post(); ?>
<?php the_post(); ?>
<?php get_template_part( 'content-index-testimonials', get_post_format() ); ?>
<?php endwhile; ?>
<?php else : ?>
Sorry, but there are currently no posts in the blog!
<?php endif; ?>
<?php wp_reset_query(); ?>
任何想法?提前致谢
好的,这样就可以通过从循环中删除“the_post()”来解决。
现在我不能在我的生活中排除这个类别,我已经尝试了以下所有内容:
<?php $blogPreview = new WP_Query('cat=-5'); ?>
<?php $blogPreview = new WP_Query(array('category__not_in'=>5)); ?>
<?php $blogPreview = new WP_Query('category__not_in'=>array(5)); ?>
都没有做到。
答案 0 :(得分:3)
不确定,但我怀疑它可能与调用
有关<?php the_post(); ?>
在您为WP_Query
对象调用它之后(例如$testimonials->the_post();
)。我认为该调用将使用全局$wp_query
值,并覆盖您之前调用中设置的值。尝试删除它。
答案 1 :(得分:3)
在两个循环中删除“the_post();”因为你已经调用了$ testimonials-&gt; the_post();
<?php $testimonials = new WP_Query('cat=5'); ?>
<?php if ( $testimonials->have_posts() ) : ?>
<?php while ( $testimonials->have_posts() ) : $testimonials->the_post(); ?>
<?php // i.e. You can call here, the_title(); ?>
<?php get_template_part( 'content-index-testimonials', get_post_format() ); ?>
<?php endwhile; ?>
<?php else : ?>
<p>Sorry, but there are currently no posts in the blog!</p>
<?php endif; ?>
<?php wp_reset_query(); ?>