WP_QUERY不加载指定数量的帖子

时间:2017-03-19 作者:X9DESIGN

我在我的页面上有随机选择的帖子,通过new WP_Query. 问题是\'posts_per_page\' 属性不起作用。这是我的代码:

<div id="featured">
    <?php 

        $args = array(
            \'post_type\' => \'post\',
            \'orderby\'   => \'rand\',
            \'posts_per_page\' => 4,
            \'nopaging\' => true,
            );

        $the_query = new WP_Query( $args );
        if ( $the_query->have_posts() ) {

            echo \'<div style="table full">\';

            while ( $the_query->have_posts() ) {

                $the_query->the_post(); 

            ?>

                <div class="featcell" style="background: url(<?php the_post_thumbnail_url(); ?>) center center">
                    <a class="featartlink" href="<?php echo get_permalink(); ?>"><?php echo get_the_title(); ?></a>
                </div>

            <?php 

            }

            echo \'</div>\';

            wp_reset_postdata();

        } 

    ?>
</div>
上面的脚本的结果是脚本从数据库加载所有帖子。脚本放在单贴子页面的贴子下。我做错了什么?看起来一切正常,但事实并非如此!谢谢你的帮助。

2 个回复
SO网友:Milo

nopaging 禁用分页,以及posts_per_page 是分页参数。您告诉它忽略分页并返回所有帖子。

SO网友:X9DESIGN

我不知道为什么,但经过一些测试,我也尝试使用get_posts() 功能正常,现在一切正常。我只是想知道为什么new WP_Query 不想工作。

以下是正确的使用代码get_posts() 作用

<div id="featured">

    <?php 

        global $post;

        $args = array( 

            \'post_type\' => \'post\', 
            \'posts_per_page\' => 4, 
            \'orderby\' => \'rand\',

        );

        $rand_posts = get_posts( $args );
        if ( $rand_posts ) : 

            echo \'<div style="table full">\';

            foreach ( $rand_posts as $post ) : setup_postdata( $post ); ?>

                <div class="featcell" style="background: url(<?php the_post_thumbnail_url(); ?>) center center">
                        <a class="featartlink" href="<?php echo get_permalink(); ?>"><?php echo get_the_title(); ?></a>
                </div>

            <?php endforeach; wp_reset_postdata(); 

            echo \'</div>\';

        endif;

    ?>

</div>

相关推荐

是否可以取消对特定帖子类型的POSTS_PER_PAGE限制?

我想知道我是否可以取消特定帖子类型的posts\\u per\\u页面限制。在存档中。php页面我显示不同的帖子类型,对于特定的“出版物”帖子类型,我想显示所有帖子。我如何在不影响传统“post”类型的情况下实现这一点?