2017-07-09 6 views
0

私は、ユーザが自分の郵便番号を入力して近くのレストランを見ることができるウェブサイトを持っています。私はレストランをMySQLテーブルに格納し、各行にはレストラン名、住所、営業時間、経度と緯度が含まれています。カスタムポストタイプをlong/latでクエリして最も近いものを探す

ユーザーが、私は経度と緯度に郵便番号を変換するには、GoogleのAPIを使用して、私は、このSQLクエリを使用自分の郵便番号を入力する...

select 
    locations.*, 
    SQRT(
     69.1*69.1*(latitude - $latitude)*(latitude - $latitude) + 
     53*53*(longitude - $longitude)*(longitude - $longitude) 
    ) as distance 
from locations 
having distance <= 100 
order by distance 
limit 100 

私は今のWordpressにサイトを移行しています。レストランと呼ばれるカスタムポストタイプを作成し、名前、住所、営業時間、経度、緯度などの同じフィールドを記録するために高度なカスタムフィールドを使用しました。私は別のフィールドに経度と緯度を格納しています。

私はすべてのレストラン照会するWP_Queryを利用することができます:

$query = new WP_Query(array('post_type' => 'restaurants')); 

をしかし、どのように私は私が与え経度と緯度に近接によってレストランを検索し、並べ替えることができるように私のWP_Queryコールを修正することができますか?あなたには、いくつかの方法でSQLを使用してそれらを結合する必要がありますので、まずwp_postsテーブルのカスタム投稿すべてのワードプレスの店やACFフィールドの


答えて

1

は、wp_post_metaテーブルに格納されています。あなたが正しいことを理解している場合は、独自のSQLクエリを作成できるwpdbクラスを使用することができます。 https://codex.wordpress.org/Class_Reference/wpdb

関連する問題