我试图在wordpress中使用过滤器来选择今天的所有帖子:
function filter_where( $where = '' ) {
$where .= " AND post_date = CURDATE() ";
return $where;
}
并且无法正常工作,但如果使用< =或> =获取帖子。
感谢您的帮助
答案 0 :(得分:1)
post_date是我认为的DATETIME字段,而不是DATE字段。尝试使用类似AND DATE(post_date) = CURDATE()
的内容来比较日期,而不是时间。
编辑:您现在已经意识到您的MySQL服务器时区设置错误。您可以基于每个连接更正此问题。我建议找到Wordpress连接数据库的代码,并在连接后添加这两行代码。您可能需要搜索mysql_connect
或mysql_select_db
才能找到此内容。
$query = "SET time_zone = 'Chile/Santiago'";
mysql_query($query);
完成此操作后,根据我的原始答案,以下代码应该可以正常工作:
function filter_where( $where = '' ) {
$where .= " AND DATE(post_date) = CURDATE() ";
return $where;
}
答案 1 :(得分:0)
如果post_date
是日期时间或时间戳列,则应使用:
AND post_date >= CURDATE()
AND post_date < CURDATE() + INTERVAL 1 DAY --- this is needed just in case
--- your table has posts with
--- future dates (by error)