我需要选择相关事件的元日期结束时间不超过 1 年的所有客户区帖子。
$data_client_zone = new WP_Query([
'post_type' => POST_TYPE_CLIENT_ZONE,
'post_status' => 'publish',
'posts_per_page' => -1,
'meta_query' => [
// Here I don't know how to target event field and its meta
[
'key' => 'meta_date-end',
'value' => date('Ymd', strtotime('-1 year')),
'compare' => '>=',
'type' => 'NUMERIC'
],
],
]);
恐怕没有办法通过一个人
WP_Query
来完成这件事。首先,您必须获取不超过 1 年的所有事件。 WP_Query
返回的帖子将是一个 ID 数组。
$data_event = new WP_Query([
'post_type' => POST_TYPE_EVENT,
'post_status' => 'publish',
'posts_per_page' => -1,
'fields' => 'ids',
'meta_query' => [
[
'key' => 'meta_date-end',
'value' => date('Ymd', strtotime('-1 year')),
'compare' => '>=',
'type' => 'NUMERIC'
],
],
]);
然后您需要查询客户端区域,将
client_zone_event
自定义字段与之前创建的数组 od events ids 进行比较。对于此特定代码,我假设 client_zone_event
自定义字段配置为返回帖子 ID。
$data_client_zone = new WP_Query([
'post_type' => POST_TYPE_CLIENT_ZONE,
'post_status' => 'publish',
'posts_per_page' => -1,
'meta_query' => [
[
'key' => 'client_zone_event',
'value' => $data_event->posts,
'compare' => 'IN',
],
],
]);