我需要限制在WordPress首页显示的帖子只在第一页。原因是一篇粘性文章破坏了我的布局和默认WP设置中设置的总帖子数。
我为找到此函数functions.php
但它似乎不起作用。
你能帮我修一下吗?我更喜欢functions.php
改变
我想知道它是否不起作用,因为带有这个片段的帖子真的很新。
add_action( \'pre_get_posts\', \'sk_change_posts_per_page\' );
/**
* Change Posts Per Page for first page of Posts page
*
* @param object $query data
*/
function sk_change_posts_per_page( $query ) {
if( $query->is_main_query() && ! is_admin() && is_home() && ! is_paged() ) {
$query->set( \'posts_per_page\', \'2\' );
}
}
Source
SO网友:Vinod Dalvi
这个pre_get_posts
之前运行WP_Query
已设置。一些模板标记和条件函数依赖于WP_Query
不起作用。您将需要直接使用查询变量,这些变量将传递给pre_get_posts
钩子作为参数。
请参阅以下页面上的更多信息:pre_get_posts
和using pre_get_posts
尝试使用以下代码。
add_action( \'pre_get_posts\', \'sk_change_posts_per_page\' );
/**
* Change Posts Per Page for first page of Posts page
*
* @param object $query data
*/
function sk_change_posts_per_page( $query ) {
if( $query->is_main_query() && ! is_admin() && $query->is_home() && ! $query->is_paged() ) {
$query->set( \'posts_per_page\', \'2\' );
}
}