繁体   English   中英

Wordpress 分页未在页面上返回相同数量的帖子

[英]Wordpress pagination not returning the same number of posts on pages

这是我的分页代码。 一切都很好,除了第 2 页之后,页面上的帖子数量不同。 例如,它在第 1 页和第 2 页上返回 9、在第 3 页上返回 8、在第 4 页上返回 7、在第 5 页上返回 6 ......这个数字只会越来越小。 发生这种情况有原因吗? 我试过改变 arguments,但到目前为止没有任何帮助。


    <?php
    if (!defined('ABSPATH')) exit;
    // Exit if accessed directly
    
    /**
     * @param $posts array
     * @param $every_eighth_full_width boolean
     */
    ?>
    <?if ($posts) :?>
            <div class="row new-post-list">
                <?php 
                    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
                    $args = array( 'post_type'=> 'post', 'post_status' => 'publish','orderby' => 'post_date',
                'order'   => 'desc', 'posts_per_page' => 9, 'paged' => $paged );
                    $query = new WP_Query($args);
                    $counter = 1;
                    while ( $query->have_posts() ) : $query->the_post();
                    ?>
                                    <?php
    
                    $hide = get_field('hide_this_blog_post_from_the_main_blog_page', $post->ID);
                    if($hide)
                        continue;
                    ?>
                    <div class="col-12 mb-2 <?= ($every_seventh_full_width && $counter%7 == 0) ? '' : 'col-md-6' ?>">
                        <?php include(locate_template('/templates/posts/new-post-teaser.php')); ?>
                    </div>
                    <?php
                    $counter++;
                    endwhile;?>
                    <div class="col-12 new-blog-pagination">
                    <?php
                      echo paginate_links(array(
                        'total' => $query->max_num_pages,
                        'prev_text' => '',
                        'next_text' => ''
                      ));
                    ?>
                    </div>
                    
                <?php wp_reset_postdata(); ?>
            </div>
    <?php endif; ?> 

编辑:这就是我解决问题的方式:

            <?php 
                $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
                $args = array( 'post_type'=> array('post','guide'), 'post_status' => 'publish','orderby' => 'post_date',
            'order'   => 'desc', 'posts_per_page' => 9, 'paged' => $paged, 'meta_query' => array(
                array(
                    'key'       => 'hide_this_blog_post_from_the_main_blog_page',
                    'value'     => '1',
                    'compare'   => '<'
                )
            ) 
        );
                $query = new WP_Query($args);
                $counter = 1;
                while ( $query->have_posts() ) : $query->the_post();
                ?>

                <div class="col-12 mb-2 <?= ($every_seventh_full_width && $counter%5 == 0) ? '' : 'col-md-6' ?>">
                    <?php include(locate_template('/templates/posts/new-post-teaser.php')); ?>
                </div>
                <?php
                $counter++;
                endwhile;?>

也许是因为这段代码

 $hide = get_field('hide_this_blog_post_from_the_main_blog_page', $post->ID);
                if($hide)
                    continue;

您是否尝试对此发表评论?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM