多个分类查询(如过滤器)

时间:2014-11-10 作者:Hener

我在制作分类法过滤器之类的东西时遇到了问题。我的代码类似于此:

$args = array(
\'post_type\' => \'post\',
\'tax_query\' => array(
    \'relation\' => \'AND\',
    array(
        \'taxonomy\' => \'movie_genre\',
        \'field\'    => \'slug\',
        \'terms\'    => array( \'action\', \'comedy\' ),
    ),
    array(
        \'taxonomy\' => \'actor\',
        \'field\'    => \'id\',
        \'terms\'    => array( 103, 115, 206 ),
        \'operator\' => \'NOT IN\',
    ),
),
);
$query = new WP_Query( $args );
好的。所以基本上我有一个表单,有几个选择的输入。我已将术语循环到每个select输入中。当我选择一个并单击“提交”时,它会将我发送到另一个页面,其中有使用此术语的queryd产品(术语在产品属性中)。但是,当我在第一页上选择两个值时,下一页应该只显示包含这两个术语的产品。这种关系不起作用,因为如果某个selectbox为空,那么$GET值为空,因此术语为空。我的条件如下:

$car = $_GET["car"];
然后我将这些变量放入如下数组:

    array(
        \'taxonomy\' => \'pa_my_taxonomy\',
        \'field\'    => \'name\',
        \'terms\'    => $car,
    ),
地址如下:

http://mydomain/page/?car=auto&something=suvi&something2=&something3=&something4=&something5=&something6=
我所有的分类法都在这个数组中。所以,如果我有和,它将考虑地址栏中的每个变量,如果其中一些是空的,但产品中有一些内容,它将不会查询该产品。

对于简单的版本,我需要使汽车轮胎选择形式,我可以选择汽车类型,季节,轮胎直径等。如果我选择汽车类型普通汽车和季节冬季,那么它将只显示具有这些产品属性的轮胎。

2 个回复
SO网友:Domain

您必须根据GET参数中是否存在该值来添加tax\\u查询参数。

所以应该是这样的,

$args = array(
           \'post_type\' => \'post\',
           \'tax_query\' => array( \'relation\' => \'AND\', ) );
$car = $_GET["car"];
if(!empty($car)){
       array_push( 
                  $args[\'tax_query\'],
                  array(
                          \'taxonomy\' => \'pa_my_taxonomy\',
                          \'field\'    => \'name\',
                          \'terms\'    => $car,
                       )
                 );
}

SO网友:Hener

仍然没有找到答案。

我的上一条注释代码版本如下:

$car = $_GET["car"];

$car_array = array(\'taxonomy\' => \'pa_my-taxonomy\',\'field\' => \'name\',\'terms\' => $car);

$taxquery = array();

if (isset($car)) {
        array_push($taxquery, $car_array);
}

// WP_Query arguments
    $args = array (
        \'post_type\'              => \'product\',
        \'order\'                  => \'ASC\',
        \'orderby\'                => \'title\',
        \'tax_query\'              => $taxquery,
    );
所以基本上是一样的。

结束

相关推荐

WP_USER_QUERY和非唯一用户元数据

我们编写并维护的WP插件存在问题-Export User Data用户报告了一个问题,即未正确返回非唯一用户元数据记录-here在该插件中,我们使用get\\u users()导出用户选择的用户元数据,而get\\u users()反过来使用WP\\u user\\u查询:我们传递几个简单的参数来获取\\u用户:// build argument array ## $args = array( \'fields\' => \'all\', \'r