Вы можете попробовать что-то вроде этого:
$today = date('Y-m-d');
$querystr = "
SELECT *
FROM wp_posts, wp_postmeta
WHERE wp_posts.ID = wp_postmeta.post_id
AND wp_postmeta.meta_key = 'date'
AND wp_posts.post_status = 'publish'
AND wp_posts.post_type = 'post'
AND STR_TO_DATE(wp_postmeta.meta_value, '%Y/%m/%d') <= '$today'
ORDER BY STR_TO_DATE(wp_postmeta.meta_value, '%Y/%m/%d') ASC
";
$custom_loop = $wpdb->get_results($querystr, OBJECT);
В последних двух строках запроса очереди вы должны указать формат вашей даты (в вашем настраиваемом поле «дата»).Например, если ваше пользовательское поле «дата» имеет формат дд / мм / ГГГГ, вы должны использовать:
AND STR_TO_DATE(wp_postmeta.meta_value, '%d/%m/%Y') <= '$today'
ORDER BY STR_TO_DATE(wp_postmeta.meta_value, '%d/%m/%Y') ASC
$today
дата имеет , чтобы быть Y-m-d
, потому что этоформат времени по умолчанию, используемый для сравнения mysql.