您正朝着正确的方向前进,但我认为您的语法有点不正确。
cat
实际上是一个公共可查询变量。https://codex.wordpress.org/WordPress_Query_Vars#List_of_Query_Vars
而不是+
, 您需要使用,
相反,你需要&
把他们分开。您应该在搜索页面上看到类似以下内容的结果:
Slug domain/?s=&cat=1999,2148
假设您正在使用
post
作为post\\u类型和
category
分类学希望有帮助!
Edit:
下面是一个表单,它试图像上面显示的那样包含您的字段:
<form role="search" method="get" id="searchform" action="">
<select class="js-cat-one-field" required>
<option value="">State</option>
<option value="1293">North Carolina</option>
<option value="1999">Virginia</option>
</select>
<select class="js-cat-two-field" required>
<option value="">Qualificationn</option>
<option value="1092">HTML</option>
<option value="8321">CSS</option>
<option value="2148">WordPress</option>
</select>
<input type="hidden" value="" name="s" />
<input type="hidden" value="" name="cat" class="js-combined-cat" />
<input type="submit" id="searchsubmit" value="Search" />
</form>
<script>
var cat_one = document.querySelector(\'.js-cat-one-field\'),
cat_two = document.querySelector(\'.js-cat-two-field\'),
hidden_cat_field = document.querySelector(\'.js-combined-cat\'),
hidden_cat_value = [];
cat_one.addEventListener("change", function() {
updateHiddenField(this.value, 0);
});
cat_two.addEventListener("change", function() {
updateHiddenField(this.value, 1);
});
function updateHiddenField(cat_value, index){
hidden_cat_value[index] = cat_value;
hidden_cat_field.value = hidden_cat_value;
}
</script>
需要注意的几件事:
如果您只搜索过滤器,则可以使用type="hidden"
在实际搜索字段上您有两个过滤器,每个过滤器都需要自己独特的name
属性。因为我们希望它们的两个值都作为一个查询字符串传递,所以我们需要在后台做一些工作,以便在表单提交时实现这一点这是一个粗略的想法,可以帮助你找到你需要的地方。但我在我这边做了测试,这给了我我们期待看到的东西我使用Vanilla JS只是为了展示一些基本概念