我有以下查询,它所做的是获取一个“书籍”列表(自定义帖子类型)。该列表显示在一个页面上,该页面也有一个小表单,下拉列表中填充了“编辑器”(自定义分类法)的术语。当用户选择“编辑器”时,它将重新加载页面,查询将返回相应的“书籍”。
// Taxonomy query
$tax_query = array(\'relation\' => \'AND\');
if($_POST[\'editor\']) array_push($tax_query,array(\'taxonomy\' => \'t_editor\',\'terms\' => array($_POST[\'editor\']),\'field\' => \'slug\'));
// Pagination
if($_POST[\'reset_pagination\'] || !get_query_var(\'paged\')){
$paged = 1;
}else if (get_query_var(\'paged\')) {
$paged = get_query_var(\'paged\');
}
// Query
$myquery = array(
\'post_status\' => \'publish\',
\'post_type\' => \'books\',
\'orderby\' => \'title\',
\'order\' => \'ASC\',
\'tax_query\' => $tax_query,
\'paged\' => $paged
);
由于“书”很多,我使用分页。
现在,问题来了。假设我在通用列表中(未经“编辑器”筛选),我有200个结果,每页分页10个。假设我一直浏览到第8页。然后,如果我决定通过“编辑器”筛选我的选择,页面将重新加载并仅显示这些结果。问题是,当我在第8页时,我的URL已经附加了/page/8/。
我找到了如何在进行筛选后将“分页”重置为1(表单上有一个隐藏的“reset\\u pagination”字段),它可以工作,并且我有筛选后的第1页结果,但在URL中仍然保留分页(/页/8/)。
如何从URL中删除“/page/x/”?
编辑:这是表单的代码
<form action="" method="post" id="filter">
<ol>
<li>
<?php include(TEMPLATEPATH . \'/includes/forms/filter_editors.php\'); ?>
</li>
<li>
<input type="hidden" name="reset_pagination" value="1"/>
<input type="submit" class="submit" value="<?php _e(\'Ok\'); ?>" />
</li>
</ol>