WP_Query分页返回额外的页面


WP_Query Pagination Returns Extra pages

我有一个自定义分类法的wp_querymeta value (ACF),分页似乎添加了额外的页面,最终作为404错误。当我执行print_r时,我可以看到查询返回正确的值,[found_posts] => 44 [max_num_pages] => 4,分类法中总共有96个项目,但是当通过元值过滤时,它是44,为什么分页不接受44

下面是查询代码:

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
    'posts_per_page'    =>  12,
    'post_type'         => 'genera',
    'meta_key'          => 'species_or_hybrid',
    'meta_value'        => $cat_type,
    'tax_query'         => array(
        array(
            'taxonomy' => 'genus',
            'field'    => 'slug',
            'terms'    => wp_get_post_terms($post->ID, 'genus', array("fields" => "names"))
        ),
    ),
    'paged'         =>  $paged,
);
// get results
$the_query = new WP_Query( $args );

在WordPress admin, Settings> Reading中,将显示的默认帖子数设置为小于查询中的帖子数量。这是由于全局$query变量返回错误的总帖子数造成的。

https://codex.wordpress.org/Pagination

也有可能是针对主循环而不是自定义的次循环运行分页。这个问题的答案取决于您使用哪个工具来输出分页链接。你可以试着把你的导航链接放在次要循环中,而不是主循环中。

正如@stellarcowboy指出的,这是一个wordpress查询的问题,可以通过调整wp-admin -> settings -> reading中的每页总帖子数来解决。

但是我发现found_posts和max_num_pages值实际上是正确的,但是WP_Query不能显示带有帖子的最后页面的内容,直到wp-admin中的数字被纠正。