WordPress搜索页筛选器提交后跳转至首页问题求助
WordPress搜索页筛选器提交后跳转至首页问题求助
嘿,这个问题是新手做WordPress搜索筛选时超容易踩的坑——你的表单提交目标设错啦,咱们一步步把它改对:
问题根源
你当前表单的action用了home_url('/'),这会强制表单提交到网站首页,而不是你需要的search.php搜索结果页。另外,还得确保提交筛选时不丢失已有的搜索关键词(s参数),不然筛选后直接变成空搜索了。
修复后的完整表单代码
直接替换你原来的表单代码就行,我加了注释说明改动点:
<form method="get" action="<?php echo esc_url(get_search_link()); ?>" class="sortering-form"> <!-- 隐藏字段:强制传递当前搜索关键词,确保筛选时不会丢失?s参数 --> <input type="hidden" name="s" value="<?php echo esc_attr(get_search_query()); ?>"> <label for="sortering">Sorteer op:</label> <select name="sort" id="sortering" onchange="this.form.submit()"> <option value="nieuw" <?php selected($_GET['sort'] ?? '', 'nieuw'); ?>>Nieuw → Oud</option> <option value="oud" <?php selected($_GET['sort'] ?? '', 'oud'); ?>>Oud → Nieuw</option> <option value="titel" <?php selected($_GET['sort'] ?? '', 'titel'); ?>>Titel A → Z</option> <option value="random" <?php selected($_GET['sort'] ?? '', 'random'); ?>>Willekeurig</option> </select> </form>
关键改动说明
- 替换表单提交目标:把
home_url('/')换成get_search_link()——这是WordPress专门的工具函数,会自动生成当前搜索结果页的完整URL,已经包含了现有的s(搜索关键词)参数,提交后就会稳稳停在search.php页面了。 - 添加隐藏
s字段:这是双重保障,防止某些极端场景下get_search_link()没正确携带搜索词,确保筛选时始终保留用户的搜索关键词。 - 提交后的URL效果:现在选择筛选选项后,URL会变成
你的域名/?s=你的搜索词&sort=nieuw这样的格式,完美停在搜索结果页,同时携带筛选参数。
额外补充:让筛选真正生效
光改表单还不够,你需要在search.php里处理sort参数,修改查询的排序规则,不然只是URL变了,内容不会排序。在你的search.php文件最顶部(主循环之前)加上这段代码:
// 获取当前筛选选项,默认按最新排序 $active_sort = $_GET['sort'] ?? 'nieuw'; $sort_args = []; // 根据筛选值设置排序参数 switch ($active_sort) { case 'oud': $sort_args = ['orderby' => 'date', 'order' => 'ASC']; break; case 'titel': $sort_args = ['orderby' => 'title', 'order' => 'ASC']; break; case 'random': $sort_args = ['orderby' => 'rand']; break; default: // nieuw $sort_args = ['orderby' => 'date', 'order' => 'DESC']; } // 修改WordPress主查询,应用排序规则 add_action('pre_get_posts', function($query) use ($sort_args) { // 只在前端搜索页修改主查询,不影响后台 if (is_search() && $query->is_main_query() && !is_admin()) { foreach ($sort_args as $key => $value) { $query->set($key, $value); } } });
这样整个筛选流程就完整了:选择排序→提交到搜索页→保留搜索词→内容按规则排序。
内容来源于stack exchange
相关产品推荐
相关产品推荐

