在WordPress中使用AND运算符进行多类别搜索

时间:2019-07-25 作者:Om Pal

enter image description here

我需要类别库搜索,其中资格和状态匹配我已经尝试过,但条件不起作用,它显示两个类别数据

1 个回复
SO网友:ChristopherJones

您正朝着正确的方向前进,但我认为您的语法有点不正确。

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 属性。因为我们希望它们的两个值都作为一个查询字符串传递,所以我们需要在后台做一些工作,以便在表单提交时实现这一点