我正在使用自定义帖子类型smart-event
,并且具有带有帖子元sevent-date
的WP_Query。在同一日期可能有多个帖子。我想在日期相同的数组。可能有一个,两个或多个帖子。以下是我要尝试的内容。
$args = array(
'posts_per_page' => -1,
'post_type' => 'smart-event',
'meta_query'=> array(
'key' => 'sevent_date',
'value'=> $this_month,
'type' => 'date',
'compare'=> 'BETWEEN',
),
);
$posts = new \WP_Query($args);
$postdateid = array();
if($posts->have_posts()){
while ($posts->have_posts()) {
$posts->the_post();
$date = get_post_meta( get_the_ID(), 'sevent_date', true);
$postdateid[date('d', strtotime($date))] =
array(
'date' => date('Y-m-d', strtotime($date)),
'id' => array(get_the_ID()), //Here i want to insert multiple ids if available
);
}wp_reset_postdata();
}
但是我每天只收到一个帖子。但是有一个日期有两个帖子。我想在'id'
答案 0 :(得分:0)
我通过array_key_exists()
检查了第一个数组键,然后使用了array_push()
。现在它可以正常工作了。
$args = array(
'posts_per_page' => -1,
'post_type' => 'smart-event',
'meta_query'=> array(
'key' => 'sevent_date',
'value'=> $this_month,
'type' => 'date',
'compare'=> 'BETWEEN',
),
);
$posts = new \WP_Query($args);
$postdateid = array();
if($posts->have_posts()){
while ($posts->have_posts()) {
$posts->the_post();
$date = get_post_meta( get_the_ID(), 'sevent_date', true);
if(array_key_exists(date('d', strtotime($date)), $postdateid)){
array_push( $postdateid[date('d', strtotime($date))]['id'], get_the_ID());
}else{
$postdateid[date('d', strtotime($date))] =
array(
'date' => date('Y-m-d', strtotime($date)),
'id' => array(
get_the_ID()
),
);
}
}wp_reset_postdata();
}