WP пользовательский мета-запрос, скрыть посты с мета-значением 1 - PullRequest
0 голосов
/ 27 октября 2018

Я использую следующий мета-запрос 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 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...