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;
}
В каком столбце типа 'post_date'? –
полный запрос: SELECT SQL_CALC_FOUND_ROWS wp_posts. * FROM wp_posts WHERE 1 = 1 AND wp_posts.post_type = 'Agenda_cultural' AND (wp_posts.post_status = 'publish' ИЛИ wp_posts.post_status = 'future') И DATE (wp_posts.post_date) = CURDATE() ORDER BY wp_posts.post_date ASC LIMIT 0, 10 – returnvoid
damm, я думаю, мой сервер не работает с правильной датой. он имеет janueary 3 (здесь в Чили все еще 2 января). Использование AND DATE (wp_posts.post_date) = DATE_ADD (CURDATE(), INTERVAL -1 DAY) работает – returnvoid