如何基于用户输入构建多分类、多术语查询

时间:2011-05-11 作者:Travis Northcutt

幸亏Otto\'上的优秀帖子advanced taxonomy queries, 我(主要)了解如何创建多分类法和多术语查询。然而,我不知道的是如何根据用户输入动态构建这些。我真的很想最终拥有亚马逊这样的公司。com在其站点上有,侧栏中分类法的各个术语旁边有复选框(以及多个术语列表,每个术语都有一个分类法标题)。类似这样:

Taxonomy with list of terms and check boxes to select those terms

我该如何着手建造这样的东西?动态显示内容(选中一个框时内容会发生变化)会很好,但我肯定会满足于使用;“提交”;按钮

2 个回复
最合适的回答,由SO网友:Rarst 整理而成

我对技术方面的细节有点模糊,但我认为总体轮廓如下:

  1. Interface - 您需要通过按钮或JavaScript将其作为表单提交。

  2. Query variables - 您需要通过注册自定义变量query_vars 筛选,以便不会从URL中丢弃自定义数据。

  3. Query - 修改查询以使用提交的自定义数据进行复杂查询

SO网友:ferenyl

当方框状态更改时,使用javascript提交表单。然后,可以使用wp\\u query创建新查询,并使用tax\\u query显示选中的分类:

$args = array(
    ... // posttype and such
    \'tax_query\' => array(),
    ...// other arguments 
);
//if post is set
if(isset($_POST[\'cats\'])){
    //pusch to array
    $args[\'tax_query\'][] = array(
        \'taxonomy\' => \'the taxonomy\',
        \'field\' => \'id\', // get tax by id or slug
        \'terms\' => $_POST[\'cats\'],
        \'operator\' => \'AND\' // or you can choose \'IN\'
    );
}
$new_query = new Wp_Query($args);
//start loop
while ($new_query->have_posts() ) : $new_query->the_post(); ?>
希望有帮助。

结束

相关推荐