不知道为什么,我的主页上的分页功能不起作用,尽管它在其他地方都起作用。。自定义模板、存档、搜索。我尝试了所有可能的分页版本。我使用了wp\\u query、query\\u posts、get\\u posts。
我尝试了将temp wp\\u query和wp\\u query设置为null,然后在分页后再次添加它的方法。
我试过将paged设置为$paged。对我来说奇怪的是,相同的循环适用于我以前的主题,但不适用于我的主题。它在我使用完全相同的循环创建的页面上工作。所以我在寻找一些可能导致这种情况的线索。这是我的循环。
global $wp_query;
$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
$args = array(
\'meta_key\' => \'rating\',
\'meta_value\' => 0,
\'meta_compare\' => \'>\',
\'orderby\' => \'meta_value_num\',
\'order\' => \'DESC\',
\'cat\' => -1,
\'posts_per_page\' => 16,
\'paged\' => $paged,
\'post_type\' => array( \'post\',\'videos\',\'articles\' )
);
$wp_query = new WP_Query($args);
while ( $wp_query->have_posts() ) : $wp_query->the_post();
get_template_part( \'loop\', \'contents\' );
endwhile;
?>
<div class="infinitescroll">
<?php next_posts_link(\'next posts\'); ?>
</div>
我试过设置
global $paged
. 我试过设置
get_query_var
翻页而不是翻页。没有骰子。
最合适的回答,由SO网友:Pollux Khafra 整理而成
在上面的评论中使用米洛的建议修复了这个问题。使用pre\\u get\\u posts,我们可以这样修改循环。
function filter_main_query( $query ) {
if( is_front_page() && is_main_query() ) {
$query->set(\'meta_key\', \'rating\');
$query->set(\'meta_value\', 0 );
// rest of params
}
}
add_action(\'pre_get_posts\', \'filter_main_query\', 9999);