我使用高级自定义字段将字段添加到事件自定义post类型中。相关字段是event_date和feature_event。
文章按event_date排序,并使用feature_event选择一个功能事件,如果选中复选框“是”,则该事件将显示在“功能”部分,如果不是,则显示下一个最近的事件。
这是设置好的,并且可以很好地使用以下代码:
$args=array(
'post_type' => 'event',
'post_status' => 'publish',
'posts_per_page' => 1,
'order' => 'ASC',
'orderby' => 'meta_value',
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'feature_event',
'value' => 'yes',
'compare' => 'LIKE'
)
)
);我还在一个不同的查询中对剩余的事件进行了排序,如果事件日期已过,则事件不再显示,这将设置好,并与我找到的here代码一起工作。
$today = date("Y-m-d");
$args = array(
'post_type' => 'event',
'posts_per_page' => -1,
'meta_key' => 'event_date',
'orderby' => 'meta_value',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'event_date',
'meta-value' => $value,
'value' => $today,
'compare' => '>=',
'type' => 'datetime'// you can change it to datetime also
)
)
);我被困住的地方是,我希望有第一个查询来显示功能事件,但是如果日期已经过了,不显示该事件,则与上面的第二个查询相同,基本上是将这两个查询组合在一起。
我尝试将第二个数组添加到meta_query中,但是即使一天过去了,事件仍然显示它是否被选中为一个特色事件。
$today = date("Y-m-d");
$args=array(
'post_type' => 'event',
'post_status' => 'publish',
'posts_per_page' => 1,
'order' => 'ASC',
'orderby' => 'meta_value',
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'feature_event',
'value' => 'yes',
'compare' => 'LIKE'
),
array(
'key' => 'event_date',
'meta-value' => $value,
'value' => $today,
'compare' => '>=',
'type' => 'datetime'
)
)
); 有人能告诉我合并这两个查询的正确方法吗?
发布于 2014-04-25 23:21:09
在您的最终代码中尝试使用“和”代替或“yourself.....just”,并将条件放在那里。
例如:
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'feature_event',
'value' => 'yes',
'compare' => 'LIKE'
),
array(
'key' => 'event_date',
'meta-value' => $value,
'value' => $today,
'compare' => '>=',
'type' => 'datetime'
),
array(
'key'=>'blah',
etc
))
https://stackoverflow.com/questions/23304091
复制相似问题