[WordPress] 半正矢式を使用してユーザーの位置に基づいて記事を表示します。

スポンサーリンク

Question

カスタムをある

ポストタイプ経度と緯度の acf は「イベント」と呼ばれます。Im のすべて「イベント」の距離を取得しようとすることは記事に関連する、Lat & ロング ユーザーを取得する geoplugin.com を使用してイム。

$geoplugin  = unserialize( file_get_contents('http://www.geoplugin.net/php.gp?ip=' . $_SERVER['REMOTE_ADDR']) );
    $geoiix    = $geoplugin['geoplugin_regionName'] ;
    $user_lat  = $geoplugin['geoplugin_latitude'];
    $user_long = $geoplugin['geoplugin_longitude'];

    $artist_id  = $tags[0]->term_id;
    $args = array(
        'post_type' => 'events',
        'orderby' => 'meta_value',
        'meta_key' => 'event_date',
        'tag__in' => array( $artist_id ),
         );
      $my_query = new WP_Query($args);
      if ($my_query->have_posts()) : while ($my_query->have_posts()) :
      $my_query->the_post();

       $event_lat  = get_field( 'gp_latitude' ); 
       $event_long = get_field( 'gp_longitude' ); 

       $earth_radius = 3960.00; # in miles
       $lat_1 = $event_lat;
       $lon_1 = $event_long;
       $lat_2 = $user_lat;
       $lon_2 = $user_long;
       $delta_lat = $lat_2 - $lat_1 ;
       $delta_lon = $lon_2 - $lon_1 ;

     function distance_haversine($lat1, $lon1, $lat2, $lon2) {
      global $earth_radius;
      global $delta_lat;
      global $delta_lon;
      $alpha    = $delta_lat/2;
      $beta     = $delta_lon/2;
       $a   = sin(deg2rad($alpha)) * sin(deg2rad($alpha)) + cos(deg2rad($lat1)) *           cos(deg2rad($lat2)) * sin(deg2rad($beta)) * sin(deg2rad($beta)) ;
      $c        = asin(min(1, sqrt($a)));
      $distance = 2*$earth_radius * $c;
      $distance = round($distance, 4);

      return $distance;
    }

     $hav_distance = distance_haversine($lat_1, $lon_1, $lat_2, $lon_2);
     echo $hav_distance;
     ?>

このコードは破壊されその番組 1 結果そして理由を把握するように見えることはできません。高度なカスタム フィールド プラグイン多分ない lat と長すぎますを格納する最善の方法だと思った

答え

… ループ内で、関数がある、毎回実行再度 (する prob php エラー オフがある) php エラーをスローする関数を宣言する

半正矢関数定義関数ファイルに入れて

http://stackoverflow.com/questions/27408427/displaying-post-based-on-users-location-using-the-haversine-formula

スポンサーリンク

Leave a Reply