我发布了一些名为“event_end_date”的自定义文章。我正在使用高级自定义字段。如何获得end_date比今天更早的帖子?我正在尝试这个,但无法通过。
$args = array(
'cat' => '6, -33',
'numberposts' => -1,
'post_type' => 'post',
'meta_query' => array(
array(
'key' => 'event_end_date',
'value' => date('y-m-d'),
'type' => 'DATE',
'compare' => '>'
)
)
);
//get results
$the_query = new WP_Query( $args );
在这里,我想要那些类别为“6”并且没有“33”类别的帖子。在后端,字段 - 'event_end_date'包含以下内容:
Field Type: Date Picker
Display format: 10/11/2014
Return format: 20141110
答案 0 :(得分:0)
我认为,如果您过于仔细地查看存储在该实际自定义/元字段中的数据,您会发现它存储为unix时间戳,而不是以返回或显示格式存储,因此,你的问题是你的格式不匹配。
您可以使用U code for unix timestamp与date('U')
代替date('y-m-d')
来解决这一差异。
在这种情况下,您的代码将如下所示:
$args = array(
'cat' => '6,-33',
'numberposts' => -1,
'post_type' => 'post',
'meta_query' => array(
array(
'key' => 'event_end_date',
'value' => date('U'),
'type' => 'DATE',
'compare' => '>'
)
)
);
//get results
$the_query = new WP_Query( $args );
答案 1 :(得分:0)
使用日期('Y-m-d',time())解决了我的问题。
$args = array(
'category__and' => array(6),
'category__not_in' => array(33),
'numberposts' => -1,
'post_type' => 'post',
'post_status' => 'publish',
'meta_query' => array(
array(
'key' => 'event_end_date',
'value' => date('Y-m-d', time()),
'type' => 'DATE',
'compare' => '<'
)
)
);