Wordpress分页不返回相同数量的帖子



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


<?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;

你想对此发表评论吗?

最新更新