我有一个需要按时间顺序排列的帖子列表。这些字段都是自定义的,我使用的是高级自定义字段插件,但这无关紧要。
我要做的是先按日期对项目进行排序,然后在小于或等于今天日期的地方进行排序,然后将其限制为1。从高层次的角度来看,我试图从帖子列表中获取下一个事件(事件= 1个帖子)。
我环顾四周并试过几个例子,但似乎没有任何正确的顺序。日期以长文本格式存储在DB中,格式为20130609 yyyymmdd。
我的WP_Query:
$type = 'round';
$date = date('Ymd');
print $date;
$args=array(
'post_type' => $type,
'post_status' => 'publish',
'posts_per_page' => 1,
'meta_key' => 'race_date',
'meta_compare' => '<=',
'meta_value' => '20130603', //Test date
'orderby_meta_key' => 'race_date',
'orderby_order' => 'ASC',
);
提前感谢,如果你知道答案,你会介意解释一下,因为我认为这个问题已经多次出现在其他问题上,但只适用于问题而不是一般情况。
:)
答案 0 :(得分:1)
您的meta_value
似乎是一个字符串,这就是<=
无效的原因。尝试将参数作为整数传递并添加type => 'NUMERIC'
,这将把数据库存储的字符串作为数字处理。
修改:您似乎也可以使用DATE
作为案例中的type
[codex] 。