我正在使用日历插件:“事件日历”,并试图完成事件。我看不出我做错了什么,但我很确定我的meta_查询在某个地方是错的。
$today = date("Y-m-d") . " 00:00:00";
$args = array(
\'post_type\' => \'tribe_events\',
\'posts_per_page\' => \'-1\',
\'meta_key\' => \'_EventStartDate\',
\'meta_query\' => array(
array(
\'key\' => \'_EventStartDate\',
\'value\' => $today,
\'compare\' => \'<\',
\'type\' => \'CHAR\',
),
),
\'orderby\' => \'start-date\',
\'order\' => \'DESC\',
);
echo $today;
$the_query = new WP_Query($args);
回显日期为2014-11-20 00:00:00,数据库中的日期为2014-11-19 08:00:00。
如果我将参数更改为>、>=或!=我没有收到任何帖子。但如果我使用这些参数中的一个,我会从该参数中得到我所期望的结果。
链接到测试页面:http://beta.musalaha.org/participants/
有人知道我可能做错了什么吗?
最合适的回答,由SO网友:isotrope 整理而成
在meta\\u查询参数中,尝试更改
\'type\' => \'CHAR\',
至
\'type\' => \'DATETIME\',
根据您的需要,您可以选择以下任一选项:
类型(字符串)-自定义字段类型。可能的值为“NUMERIC”、“BINARY”、“CHAR”、“DATE”、“DATETIME”、“DECIMAL”、“SIGNED”、“TIME”、“UNSIGNED”。默认值为“CHAR”。
But wait! There\'s more! ;)
事件日历似乎与涉及以下内容的查询挂钩
\'post_type\' => \'tribe_events\'
!
您需要添加
\'eventDisplay\' => \'past\',
或
\'eventDisplay\' => \'all\',
你的论点。
..或者,你也可以
$my_past_events = tribe_get_events(
array(
\'posts_per_page\'=>999,
\'eventDisplay\'=>\'past\',
)
);
并循环浏览$my\\u past\\u事件。