并非所有帖子都显示在查询中

时间:2015-10-07 作者:Z0idberg

PHP:

<?php $posts_query = new WP_Query(\'post_type="posts&posts_per_page=-1"\');

if ($posts_query->have_posts()) : while ($posts_query->have_posts()) : $posts_query->the_post(); ?>


    <?php   if( $posts_query->current_post%5 == 0 ) { echo "\\n" . \'<div class="column">\'; }
                        elseif( $posts_query->current_post%5 == 2 ) { echo "\\n" . \'<div class="column">\'; } ?>


            <article>

                <a class="post-link" href="<?php the_permalink(); ?>">
                     <?php the_post_thumbnail();     ?>

                </a>
            </article>

  <?php     if( $posts_query->current_post%5 == 1 || $posts_query->current_post%5 == 4 || $posts_query->current_post == $posts_query->post_count-1 ) { echo \'</div>\'; }
        endwhile;
        ?>
 <?php  else: endif; ?>
上面的代码工作得很好,但是我总共有8篇帖子,只有7篇被显示出来。

有人能把我引向正确的方向吗?

干杯

2 个回复
SO网友:bestprogrammerintheworld

您的查询中似乎有一个语法:

post_type="posts&posts_per_page=-1"
意味着你的帖子类型是posts&posts_per_page=-1

我想你是说

$posts_query = new WP_Query(\'post_type=post&posts_per_page=-1\');
(岗位类型不是岗位,而是post)

在这种情况下,Wordpress根本不会应用任何内容(因为它包含错误,但只会获取带有设置(在仪表板中设置)“帖子数量”的默认帖子类型)。

我的意见是,您应该始终将数组作为WP\\u查询的参数,因为它更可读,更容易调试。

$args = array(
    \'posts_per_page\' => -1,
    \'post_type\' => \'post\',
);

$posts_query = new WP_Query($args);
在您的情况下,这并不重要,但当您想要扩展功能以包括分类法时,它将是

$args = array(
    \'posts_per_page\' => -1,
    \'post_type\' => \'post\',
    \'tax_query\' => array(
        array(
            \'taxonomy\' => \'people\',
            \'field\'    => \'slug\',
            \'terms\'    => \'bob\',
        ),
    ),
);
$query = new WP_Query( $args );

SO网友:Jeff Mattson

确保你的帖子都已发布,并且不在垃圾桶中。

相关推荐

Last post in loop when even

我使用这段代码尝试检查每个页面上的最后一篇文章循环是否均匀,以便添加不同的类。这可以检查它是否是最后一篇文章:( ( 1 == $wp_query->current_post + 1 ) == $wp_query->post_count ) 这可以检查它是否是一个均匀的帖子( $wp_query->current_post % 2 == 0 ) 但这并没有检查这是否是最后一篇文章,甚至。 ( ( 1 == $wp_query->current_post + 1