Я использую следующий мета-запрос WP для отображения количества сообщений, упорядоченных по широта и долгота .У меня есть метаполе с именем 'venue_discontinued
'.Это может иметь значение 1
, 0
или не существует.
AND venue_discontinued.meta_value != 1
Использование результатов выше только в сообщениях с появлением значения 0
.И посты со значением 1
, и посты без мета-значения отфильтровываются.
Есть идеи, как отображать посты без мета-значения?
Вот полный запрос:
global $wpdb;
$sql = $wpdb->prepare( "
SELECT DISTINCT
p.ID,
p.post_title,
lat.meta_value as locLat,
lng.meta_value as locLong,
( %d * acos(
cos( radians( %s ) )
* cos( radians( lat.meta_value ) )
* cos( radians( lng.meta_value ) - radians( %s ) )
+ sin( radians( %s ) )
* sin( radians( lat.meta_value ) )
) )
AS distance
FROM $wpdb->posts p
INNER JOIN $wpdb->postmeta lat ON p.ID = lat.post_id
INNER JOIN $wpdb->postmeta lng ON p.ID = lng.post_id
INNER JOIN $wpdb->postmeta venue_discontinued ON p.ID = venue_discontinued.post_id
WHERE 1 = 1
AND p.post_type = 'venue'
AND p.post_status = 'publish'
AND venue_discontinued.meta_value != 1
AND lat.meta_key = 'lat'
AND lng.meta_key = 'lng'
HAVING distance < %s
ORDER BY distance ASC",
$earth_radius,
$lat,
$lng,
$lat,
$distance
);
$wpdb->get_results( $sql );