0
私は、さまざまなCPTの関連記事を返すために、半径ベースの位置検索を構築しようとしています。全体的なプロセスは機能しますが、私はfunction.phpファイル内の関数にパラメータの一部を渡すことに問題があります(フォームから取得しますが、関数に渡す方法はわかりません)。add_filterを通じて関数にパラメータを渡す
パラメータはlat lngとradiusです(現在functions.php内のコードに手動で書き込まれています)。
search.php
のfunctions.php
function location_posts_where($where)
{
global $wpdb;
$lat = '41.834536';
$lng = '39.2440537479998';
$radius = 60;
$where .= " AND $wpdb->posts.ID IN (SELECT post_id FROM wp_lat_lng_post WHERE
(3959 * acos(cos(radians(" . $lat . "))
* cos(radians(lat))
* cos(radians(lng)
- radians(" . $lng . "))
+ sin(radians(" . $lat . "))
* sin(radians(lat)))) <= " . $radius . ")";
return $where;
}
$ wpdbを使用してカスタムSQLクエリを使用し、すべてのコードを1つのsearch.phpファイルに保存することができます。 https://codex.wordpress.org/Class_Reference/wpdb –