I'm trying to use WP_Query to create a query with both a meta_query element and tax_query element. The kicker is that I don't want to find the results where both conditions are met (and AND clause) I want to find the conditions where either one or the other are met (OR clause).
我正在尝试使用WP_Query创建一个同时具有meta_Query元素和tax_Query元素的查询。关键是我不想找到同时满足两个条件的结果(and子句),我想找到满足其中一个或另一个的条件(or子句)。
$loop = new WP_Query( array(
'post_type' => 'tickets',
'paged' => $paged,
'order' => $order,
'orderby' => $orderby,
'meta_query' => array(
array(
'key' => 'tps_email', // Use 'key' for author
'value' => '[email protected]', // Replace with the author ID you want to query
'compare' => 'LIKE', // Use '=' to match the author ID
),
),
'tax_query' => array(
array(
'taxonomy' => 'topic', // Replace with your custom taxonomy name
'field' => 'slug', // You can use 'id', 'slug', or 'name' depending on how you want to identify the term
'terms' => 'housekeeping', // Replace with the slug of the specific term you want to query
),
),
)
);
I accept outputs like this
我接受这样的输出
更多回答
优秀答案推荐
Here's how you can set up a "OR" relationship between meta_query and tax_query:
以下是如何在meta_query和tax_query之间设置“OR”关系:
$args = array(
'post_type' => 'tickets',
'paged' => $paged,
'order' => $order,
'tax_query' => array(
'relation' => 'OR', // Set the relationship to OR
array(
'taxonomy' => 'topic',
'field' => 'slug',
'terms' => 'housekeeping',
),
array(
'taxonomy' => 'your_taxonomy_2',
'field' => 'slug',
'terms' => 'term_slug_2',
),
),
'meta_query' => array(
'relation' => 'OR', // Set the relationship to OR
array(
'key' => 'tps_email',
'value' => '[email protected]',
'compare' => '='
),
array(
'key' => 'custom_field_2',
'value' => 'custom_value_2',
'compare' => '='
),
),
);
更多回答
我是一名优秀的程序员,十分优秀!