我目前对WordPress的元查询有一个小问题。初步情况:
具有2个元字段的自定义帖子类型(offer_start-date,offer_end-date)CPT旨在作为要约,应在指定的时间段内显示(在开始日期和结束日期之间)。此处的日期格式为德语格式DD.MM.YYYY。为此,我使用目前的以下查询:
$args = array(
'post_type' => 'offer',
'posts_per_page' => -1,
'post_status' => 'publish',
'order' => 'DESC',
'meta_query' => array(
array(
'key' => 'offer_start-date',
'value' => date( 'd.m.Y', time() ),
'type' => 'numeric',
'compare' => '<='
),
array(
'key' => 'offer_end-date',
'value' => date( 'd.m.Y', time() ),
'type' => 'numeric',
'compare' => '>='
)
)
);
new WP_Query( $args );
不幸的是,查询不会产生可靠的结果。我甚至不能说100%为什么。有些日子会出现所有优惠,其他日子则没有优惠。
我也试图找出食典中问题的原因,但似乎我是一个强大的傻瓜。
答案 0 :(得分:2)
如果您需要在两者之间使用,请使用:
'meta_query' => array(
array(
'key' => 'event_date',
'value' => array(date('d/m/Y'), date('d/m/Y', strtotime('28 days'))),
'compare' => 'BETWEEN',
'type' => 'DATE'
),
)
答案 1 :(得分:2)
以下解决方案对某人来说可能很方便
$args = array(
'cat' => $cat_ID,
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'date_from',
'value' => date("Y-m-d H:i:s"),
'compare' => '<=',
'type' => 'DATE'
),
array(
'key' => 'date_to',
'value' => date("Y-m-d H:i:s"),
'compare' => '>=',
'type' => 'DATE'
)
),
'orderby' => 'date',
'order' => 'DESC'
);