在保留查询的同时更改WP搜索上的每页结果

时间:2019-10-25 13:55:02

标签: php wordpress

我有一个带有标准搜索选项的wordpress网站。在搜索结果页面上,我需要提供一个选择字段,该字段允许用户显示12、24、36或所有结果。看起来很简单,但是我在使用URL字符串时遇到了麻烦。

我的代码将当前查询字符串分配给一个变量,然后将其传递到选择字段并将per_page附加到该变量。很好问题是每次我更改选择字段时,都会将per_page附加到URL的末尾。因此,如果我选择12,然后将其更改为24,则我的URL变成/?s = search-term&per_page = 12&per_page = 24

我的问题是,如何获取它来代替URL中的per_page而不是附加到其上?

非常感谢您的帮助

<?php $search_string = $_SERVER['QUERY_STRING']; ?>

Show<select onchange="location = this.options[this.selectedIndex].value;">
        <option value="">Select</option>
        <option value="?<?php echo $search_string . '&per_page=12';?>">12</option>
        <option value="?<?php echo $search_string . '&per_page=24';?>">24</option>
        <option value="?<?php echo $search_string . '&per_page=36';?>">36</option>
        <option value="?<?php echo $search_string . '&per_page=-1';?>">All</option>
</select> 

1 个答案:

答案 0 :(得分:0)

这会将其从查询字符串中删除,然后再在每个选项上打印它。

$search_string = preg_replace('#&?per_page=([\d]+)&?#', '', $search_string);