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;
}