0
私は、ユーザーの所在地に関連する結果を返すwordpress SQLクエリーをまとめようとしています。Wordpress SQLクエリーでジオロケーションを特定し、関連する結果を返す
ジオロケーションの緯度と経度のクッキーは、ユーザーが最初にサイトにアクセスしたときに設定されます。 2枚のクッキーは、後のページでPHPの変数にリードバックされます。
$lat = $_COOKIE["lat"]; $long = $_COOKIE["long"];
は、次のSQLコードが実行されます。
$locations = "
SELECT P.ID, P.post_title, P.post_content,
MAX(IF(PM.meta_key = 'lat', PM.meta_value, NULL)) AS lat,
MAX(IF(PM.meta_key = 'long', PM.meta_value, NULL)) AS long,
MAX(IF(PM.meta_key = 'contact_email', PM.meta_value, NULL)) AS contact_email
FROM wp_posts AS P
LEFT JOIN wp_postmeta AS PM on PM.post_id = P.ID
WHERE P.post_type = 'pickup_location' and P.post_status = 'publish'
GROUP BY P.ID
ORDER BY P.post_title ASC;";
$result_locations = $wpdb->get_results($locations);
すべてはそれが必要として働いている、これまでに...クッキーが設定され、読み込まれています。クエリは、それが必要とするものを正確に返します。しかし、クエリの結果をさらに絞り込むために、クエリに以下を追加したいと思います。
AND WHERE acos(sin('.$lat.') * sin('lat') + cos('.$lat.') * cos('lat') * cos('long' - ('.$long.'))) * 6371 <= 200;