有没有更优雅的方式来做同样的事情。我有三个过滤器,我想用它们来影响第四个字段中的结果。池、月和标记是过滤器。我希望忽略标记,除非选择了标记。我一直遇到这样一个问题:如果没有选择标签,那么结果将显示在最终字段中。
我想出了一个便宜的方法,但我认为还有更好的方法。
我的方法是,如果标记的数组为空,那么我将更改传递给WP\\u查询的$args变量的值。在检查过程中,如果碰巧选择了标记,我会将名为$tag\\u status的变量的值设置为not\\u empty。然后我只是检查变量的值。
看一看:
if($tag_status == "not_empty"){
$args = array(
\'post_type\' => \'daily-marriage-tips\',
\'tax_query\' => array(
\'relation\' => \'AND\',
array(
\'taxonomy\' => \'cat_tips\',
\'field\' => \'slug\',
\'terms\' => $get_fym_dmt_pool,
),
array(
\'taxonomy\' => \'cat_months\',
\'field\' => \'slug\',
\'terms\' => array_for_query($current_post_id, $get_fym_dmt_month_arr),
),
array(
\'taxonomy\' => \'tag_tips\',
\'field\' => \'slug\',
\'terms\' => array_for_query($current_post_id, $get_fym_dmt_tags_arr),
\'relation\' => \'AND\'
),
),
);
} else {
$args = array(
\'post_type\' => \'daily-marriage-tips\',
\'tax_query\' => array(
\'relation\' => \'AND\',
array(
\'taxonomy\' => \'cat_tips\',
\'field\' => \'slug\',
\'terms\' => $get_fym_dmt_pool,
),
array(
\'taxonomy\' => \'cat_months\',
\'field\' => \'slug\',
\'terms\' => array_for_query($current_post_id, $get_fym_dmt_month_arr),
)
),
);
}
我曾尝试将标签查询放入一个数组中,并将关系设置为“或”,但这会使第四个字段为空,除非我选择了标签。我不想必须选择标签,因为该过滤器是一个奖金过滤器。这是一件可选的事情。最佳方法是什么?