WP_Query分页返回额外页面

时间:2016-10-05 16:24:53

标签: php wordpress pagination

我有wp_query自定义分类以及meta 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 );

2 个答案:

答案 0 :(得分:1)

在WordPress管理员中,设置>阅读时,将显示的默认帖子数设置为小于查询中的帖子数量。这是由全局$query变量返回错误的总帖子数引起的。

https://codex.wordpress.org/Pagination

您也可以对主循环运行分页,而不是自定义的辅助循环。该问题的答案取决于您用于输出分页链接的工具。您可以尝试将导航链接放在辅助循环内,而不是主循环。

答案 1 :(得分:0)

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

但我发现found_posts和max_num_pages值实际上是正确的,但是在wp-admin中的数字被更正后,WP_Query无法显示最后一页的内容。