我对分页有问题。我有一个媒体类别,使用类别媒体。php模板。我有一个带有分页变量的自定义循环。总共有30个职位。
示例:
$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
$args = array(
\'posts_per_page\' => 3,
\'category_name\' => \'media\',
\'paged\' => $paged
);
$my_loop = new WP_Query( $args );
echo $my_loop->max_num_pages . "<br><br>";
while ($my_loop->have_posts()) : $my_loop->the_post();
echo get_the_title() . "<br><br><br>";
endwhile;
wp_pagenavi( array( \'query\' => $my_loop ) );
分页显示良好,max\\u num\\u pages甚至回显10页。当我开始单击分页链接时,超过第5页的页面不会显示任何内容。我的阅读设置为每页6。如果我注释掉posts\\u per\\u page参数,分页工作正常。
我觉得我忽略了一些简单的事情。有什么想法吗?
最合适的回答,由SO网友:Milo 整理而成
WordPress根据主查询的结果确定是否存在分页页面。每个页面实际上查询6篇文章,而您的自定义查询只加载3篇。
解决方案-不要在模板中创建新查询,请使用pre_get_posts
通过主题的functions.php
function wpa90437_media_category( $query ) {
if ( $query->is_category(\'media\') && $query->is_main_query() ) {
$query->set( \'posts_per_page\', 3 );
}
}
add_action( \'pre_get_posts\', \'wpa90437_media_category\' );
然后在模板中运行普通循环。