이 플러그인은 최근 3개의 주요 워드프레스 출시와 시험 되지 않았습니다. 워드프레스의 좀 더 최근 버전으로 이용할 때 더 이상 관리되지 않고 지원되지 않고 호환성 문제가 있을 수 있습니다.

WP Geo search

설명

A plugin to add location-aware geographical search to WP_Query.

You can use it to power location-aware apps, such as showing a user results near them.

🔎 Using it in a query

Adding a geo_query parameter to WP_Query will add a “distance” column to the returned results, provided they have the right metadata.

You can then display this in your templates.

You can use a location search parameter, which will be geocoded or directly provide latitude and longitude values:

$query = new WP_Query(array(
    "geo_query" => array(
            "location" => "London"
    )
))

$query = new WP_Query(array(
    "geo_query" => array(
            "latitude" => -52.005,
            "longitude" => 0.005,
    )
))

Optionally, you can then filter by search radius.

By default, distances are given in miles. You can provide "units" => "km" if you need kilometres.

$query = new WP_Query(array(
    "geo_query" => array(
            "latitude" => -52.005,
            "longitude" => 0.005,
            "radius" => 10
    )
))

Or order by nearness:

$query = new WP_Query(array(
    "geo_query" => array(
            "latitude" => -52.005,
            "longitude" => 0.005
    ),
    "orderby" => "geo"
))

Displaying distance in templates

In a WP_Query loop that includes a geo_query, you can use two extra functions to show distance away:

  • jhgs_get_the_distance(object $post) – which returns a rounded integer for the distance away, similar to get_the_title()
  • jhgs_the_distance(string $less_than_one, string $one, string $more_than_one) – which displays an approximate human-readable string, similar to the_title()

    jhgs_the_distance will show one of three messages depending on whether the rounded distance is less than one, one, or greater than one. By default these are:

  • “Less than a mile away”

  • “About a mile away”
  • “About %s miles away”

If you need to use different units or translations, can pass three printf-formatted strings to jhgs_the_distance() to override these messages. Put %s where you want the value.

If you need the exact, unrounded value, you can use $post->distance.

Geocoding

Nominatim‘s service is used for geocoding location searches.

Using it is subject to an acceptable use policy – if you use case will involve lots of API calls, you should replace it with a paid alternative, like Google‘s.

📍 Populating latitude and longitude data

It looks for two custom field values with the keys latitude and longitude on your posts.

It’s agnostic about how you supply this data. The simplest thing to do is type it in using WordPress’s built-in custom field editor.

You could also hook into the save_post action to populate meta whenever you create or change a post, by adding a snippet like this to your theme’s functions.php:

function example_update_latlngs($post){
    $location = get_field("location", $post);
    if(isset($location)){
        update_post_meta($post, "longitude", $location["lng"]);
        update_post_meta($post, "latitude", $location["lat"]);
    }
}

add_action("save_post", "example_update_latlngs", 10, 3);

This example assumes you are using an ACF Google Map field called “location”, but the data could come from anywhere, including a custom meta box you code yourself, so long as the post meta keys are right.

Bulk-updating existing posts

If you have many posts that you need to add longitude and latitude meta to in bulk, you could add something like this to functions.php, which will run on theme activation:

function example_update_all_latlngs(){
    $query = new WP_Query(array(
        "posts_per_page" => -1
    ));
    foreach($query->get_posts() as $post){
        // Function from above
        example_update_latlngs($post);
    }
}

add_action('after_switch_theme', 'example_update_all_latlngs');

FAQ

I’ve activated it, but I can’t see any changes to my website

This plugin adds extra functionality to WP_Query – it’s up to you to make use of that functionality in your theme.

후기

2021년 4월 6일
The definitive neighborhood search plugin that easily extends WP_Query for everyone to understand, and is fully functional. I am so happy to have found this plugin.
모든 2 평가 읽기

기여자 & 개발자

“WP Geo search”(은)는 오픈 소스 소프트웨어입니다. 다음의 사람들이 이 플러그인에 기여하였습니다.

기여자

자국어로 “WP Geo search”(을)를 번역하세요.

개발에 관심이 있으십니까?

코드 탐색하기는, SVN 저장소를 확인하시거나, 개발 기록RSS로 구독하세요.

변경이력

0.1

  • First release