我正在尝试使用 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' => 'web@data.com', // 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
),
),
)
);
我接受这样的输出
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
以下是如何在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' => 'web@data.com', 'compare' => '=' ), array( 'key' => 'custom_field_2', 'value' => 'custom_value_2', 'compare' => '=' ), ), );