更改默认循环的“POSTS_PER_PAGE”

时间:2014-08-11 作者:Digerkam

我正试图改变posts_per_page 默认wordpress循环中的值,而不是自定义循环。

global $wp_query ;
// $wp_query->query_vars[\'posts_per_page\'] = 1000 ;
$wp_query->set(\'posts_per_page\',1000) ;
while ($wp_query->have_posts()) {
    $wp_query->the_post() ;
    // other operations
}
如何做到这一点?

1 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

正如Tom所说,这永远不会起作用,因为主查询已经执行了。实现这一点的唯一方法是更改主查询before 它已执行。

有一个动作钩,pre-get_posts 这是更改主查询的正确方法。

示例:

function wpse_custom_ppp( $query ) {
    if ( !is_admin() && $query->is_main_query() ) {
        $query->set( \'posts_per_page\', \'1000\' );
    }
}
add_action( \'pre_get_posts\', \'wpse_custom_ppp\' );
您可以使用其他conditional tags 以特定页面为目标

结束

相关推荐

Featured posts and the loop

我正在尝试在索引中添加一个框。php在何处显示最新的3篇特色帖子。根据this tutorial, 我已将以下内容添加到functions.php:add_theme_support( \'featured-content\', array( \'filter\' => \'magdeleine_get_featured_posts\', \'max_posts\' => 3, ) ); function magdeleine