Мне кажется, что одна запись в wp_posts может не иметь обеих связанных записей в таблице wp_postmeta, поэтому измените
INNER JOIN wp_postmeta AS mt1 ON (wp_posts.ID = mt1.post_id)
INNER JOIN wp_postmeta AS mt2 ON (wp_posts.ID = mt2.post_id)
на
LEFT JOIN wp_postmeta AS mt1 ON (wp_posts.ID = mt1.post_id)
LEFT JOIN wp_postmeta AS mt2 ON (wp_posts.ID = mt2.post_id)
Еще одна вещь: будьте осторожны, когдавы используете BETWEEN:
Для получения наилучших результатов при использовании BETWEEN со значениями даты или времени используйте CAST () для явного преобразования значений в требуемый тип данных.Примеры: Если вы сравниваете DATETIME с двумя значениями DATE, преобразуйте значения DATE в значения DATETIME.Если вы используете строковую константу, такую как '2001-1-1', в сравнении с DATE, приведите строку к DATE.