我正试图改变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
}
如何做到这一点?
最合适的回答,由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 以特定页面为目标