除索引页外,分页在任何地方都可以使用

时间:2012-11-05 作者:Pollux Khafra

不知道为什么,我的主页上的分页功能不起作用,尽管它在其他地方都起作用。。自定义模板、存档、搜索。我尝试了所有可能的分页版本。我使用了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 翻页而不是翻页。没有骰子。

1 个回复
最合适的回答,由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);

结束

相关推荐

Why won't pagination work?

我正在使用带有代码的页面模板来显示所有博客帖子:<?php /* Template Name: Blog */ ?> <?php get_header(); ?> <div id=\"main\"> <?php // ACF Page number variable $numposts = get_field(\'number_of_posts_per_page\'); $args =