我有一个带有下拉列表的自定义模板,可以按类别过滤帖子。我通过将表单发布到页面本身,然后捕获参数并在查询中使用它来实现这一点(请参见下面的代码)。
令人沮丧的是:如果您导航到第2页(例如),并且then 使用筛选器,URL仍然包含/page/2/
位,如果结果少于一页的值,您有时会看到零篇帖子,因为新结果都在第1页,而您被困在第2页。已尝试取消设置分页变量,但无效。如何在用户每次使用过滤器时将其发送回首页?
<form action="" method="POST">
<fieldset>
<select id="food-type" name="food_type" class="selectBox">
<option value="0">Select One:</option>
<option value="meat">Meat</option>
<option value="salads">Salads</option>
<option value="vegetarian-entrees">Vegetarian Entrees</option>
</select>
<button type="submit" class="search">Search</button>
</fieldset>
</form>
我将其内容处理如下:
global $post;
global $query_string;
$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
$args = array(
\'post_status\' => \'publish\',
\'post_type\' => \'recipe\',
\'suppress_filters\' => false,
\'paged\' => $paged
);
if(isset($_POST[\'select_food_type\']) && !empty($_POST[\'select_food_type\']) ) {
$args[\'food_type\'] = $_POST[\'select_food_type\'];
unset($args[\'paged\']);
}
query_posts($args);