我第一次尝试使用pre\\u get\\u帖子,但没有成功。这是一段非常简单的代码,位于一个空主题的索引页上,纯粹是为了了解动作挂钩的窍门:
function just_one( $query )
{
$query->set( \'posts_per_page\', 1 );
}
add_action( \'pre_get_posts\', \'just_one\' );
从我读到的内容来看,我看不出这有什么错,但当我在下面运行时:
echo get_query_var( \'posts_per_page\' );
它显示默认的“10”,而不是我所期望的“1”。我做错什么了吗?除上述代码外,索引页完全为空。为任何帮助干杯。
最合适的回答,由SO网友:s_ha_dum 整理而成
。。。这是一段非常简单的代码index 另一个空主题的页面。。。
如果在上运行此代码index page 并期望它影响主查询,那么您添加操作太晚了。主查询在加载主题模板之前运行良好。您需要输入该代码functions.php
在活动主题或插件中使用conditional logic 确保它只在你想要的地方运行。例如
function just_one( $query ) {
if ( $query->is_main_query() && $query->is_front_page() ) {
$query->set( \'posts_per_page\', 1 );
}
}
add_action( \'pre_get_posts\', \'just_one\' );
我真的不知道
if
条件应为。有关可用条件,请参阅已链接到的Codex页面。