您要使用查询帖子event_date
在将来,但您已将日期保存为(或者从评论中可以看出是这样的):
date("F", $unixtime)." ".date("d", $unixtime).", ".date("Y", $unixtime);
即“文本月名”+“数字日”+“数字年”。无法查询/排序该格式以使其与日历匹配。您的排序选项是“字母顺序”,这显然是错误的,或者是“数字”,这也显然是错误的。这个
only 以与日历匹配的方式进行排序的可读日期格式为“数字年”+“数字月”+“数字日”或“YYYY-MM-DD”。分隔符的选择是任意的,不能为空。那就是
date(\'Y-m-d\')
. 如果您的日期是以rational格式存储的,那么下面这样的查询应该满足您的需要:
$args = array(
\'post_type\' => \'events\',
\'orderby\' => \'event_date\',
\'meta_key\' => \'event_date\',
\'order\' => \'ASC\',
\'meta_query\' => array(
array(
\'key\' => \'event_date\',
\'value\' => date(\'Y-m-d\',time()),
\'compare\' => \'>\'
)
),
);
$q = new WP_Query($args);
var_dump($q->request);
您也可以始终只存储Unix时间戳。这些排序也与日历顺序相匹配。然后设置显示日期的格式。这是我对日期的偏好,除非您在MySQL表中保存为“日期”格式的列。如果保存为时间戳,请使用:
\'value\' => strtotime(\'today\'),
而不是:
\'value\' => date(\'Y-m-d\',time()),