下面的查询按预期工作,显示按meta\\u值排序的cpt事件,我还没有弄清楚如何删除过去事件或已开始事件的帖子。事件的开始日期当前存储为“yy m d”,并使用jQuery datepicker选择日期。
<?php
global $post;
$args = array(
\'post_type\' => \'events\',
\'numberposts\' => 5,
\'meta_key\' => \'sp_startDate\',
\'orderby\' => \'meta_value\',
\'order\' => \'ASC\'
);
$supplierTrainingEvents = get_posts( $args );
foreach( $supplierTrainingEvents as $post ) : setup_postdata($post);
?>
我试过这个和其他变体,但都没有成功。
$args = array(
\'post_type\' => \'events\',
\'numberposts\' => 5,
\'meta_key\' => \'sp_startDate\',
\'meta_value\' => date("MM d yy"),
\'meta_compare\' => \'>\',
\'orderby\' => \'meta_value\',
\'order\' => \'ASC\'
);
感谢您的关注。
最合适的回答,由SO网友:Stephen Harris 整理而成
日期格式不正确。我不确定您是如何存储日期的,但您在查询中使用的格式,date("MM d yy")
输出“2012年3月7日”。
输入是否由jQuery datepicker完成并不重要:输入应采用预先指定的格式,因此可以将输入解释为日期(或者更好DateTime) 对象,然后将该日期格式化为以下格式:2012-03-07,在php“格式”中为\'Y-m-d\'
.
或者,如果您不介意,也可以将其存储为时间戳2038.
最后,请厌倦使用php日期函数。WordPress将“内部”时区设置为UTC-最好使用WordPress functions 这将说明博客的时区。