我正在尝试构建自定义搜索表单,我希望覆盖网站的默认每页帖子数限制,但我使用的隐藏字段似乎根本不起作用:
我有:
<input type="hidden" value="-1" name="posts_per_page" />
。。但当我在搜索结果页面上检查$wp\\u查询时,这似乎被忽略了(我正在进行的搜索匹配29篇帖子,但$wp\\u查询->帖子的计数为10。我使用不同的值进行了多次测试,但都没有用。
完整自定义搜索表单如下所示:
<form role="search" method="get" id="search" action="/" class="col-xs-12">
<input type="text" value="" name="s" id="s" />
<input type="hidden" value="1" name="sentence" />
<input type="hidden" value="-1" name="posts_per_page" />
<input type="hidden" value="any" name="post_type" />
<input type="submit" id="searchsubmit" value="Search" />
</form>
我有没有忽视一些基本的东西?
我设置了一系列pre\\u get\\u posts操作来调整管理屏幕中的内容,但我已经禁用了所有这些操作,以查看它们是否有干扰,但同样没有乐趣。
最合适的回答,由SO网友:freejack 整理而成
您可以使用pre\\u get\\u posts操作设置posts\\u per\\u页面,如下所示:
add_action( \'pre_get_posts\', \'my_set_posts_per_page\' );
function my_set_posts_per_page( $query ){
if ( is_admin() ){
return;
}
//Check if this is a search
if ( isset( $query->query[\'s\'] ) ) {
$query->set( \'posts_per_page\', -1 );
}
}