自定义搜索表单,POSTS_PER_PAGE值被忽略

时间:2017-08-29 作者:efreeman

我正在尝试构建自定义搜索表单,我希望覆盖网站的默认每页帖子数限制,但我使用的隐藏字段似乎根本不起作用:

我有:

<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操作来调整管理屏幕中的内容,但我已经禁用了所有这些操作,以查看它们是否有干扰,但同样没有乐趣。

1 个回复
最合适的回答,由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 );
  }
}

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post