Raiks
@Raiks

Как использую плагин ACF WP сделать привязку адреса к Google maps?

5b892c5b392d4659390321.png

Есть поля: страна, город, карта Google maps, сделанные через плагин ACF. Как можно сделать, чтобы после указания адреса в поле автоматически выводился данный адрес на карте?

Я как понимаю, что нужно взять значение поля через get_field('adress'); переделать его в координаты и привязать их к значению карты

Очень благодарен буду, кто примером кода PHP поделится ))
  • Вопрос задан
  • 519 просмотров
Пригласить эксперта
Ответы на вопрос 2
Chefranov
@Chefranov
Новичок
Я делал так
HTML
<section class="map" id="map" data-long="<?php echo get_field('b10_map')['lng']; ?>" data-lat="<?php echo get_field('b10_map')['lat']; ?>"></section>

JS
var gmap = document.getElementById('map');
 var latitude = parseFloat(gmap.dataset.lat);
 var longitude = parseFloat(gmap.dataset.long);

 function initMap() {

     var place = {
         lat: latitude, // широта
         lng: longitude // долгота
     };
     var map = new google.maps.Map(
         document.getElementById('map'), {
             zoom: 18,
             center: place
         });
     var marker = new google.maps.Marker({
         position: place,
         map: map
     });
 }

FUNCTIONS.PHP
function my_acf_init() {
	
	acf_update_setting('google_api_key', 'YOUR API KEY');
}

add_action('acf/init', 'my_acf_init');
Ответ написан
qant
@qant
programer
Евгений тебе дал нормальный вариант, главное узнай откуда брать данные data-long= и data-lat=

Данные должны храниться в базе, в таблице wp_postmeta

Получил адрес и в коде страницы при формировании javascript

Что бы понять откуда брать эти данные (data-long= и data-lat=) Обратись в документацию ACF или в поддержку плагина ACF они подскажут.

В теории будет что то такое:

$lat_lng = get_post_meta($post_id, 'addr_meta_name', true); 
//Или
$lat = get_post_meta($post_id, 'addr_meta_name_lat', true); 
$lng = get_post_meta($post_id, 'addr_meta_name_lng', true);


addr_meta_name можно узнать простым поиском в базе данных по значению введи стандартные координаты чего то, что бы ты знал значения lat и lng для поиска в базе.

P.S.

Судя по документации данные оттуда можно получить вот так:

$location = get_field('location');
if( $location ): ?>
    <div class="acf-map" data-zoom="16">
        <div class="marker" data-lat="<?php echo esc_attr($location['lat']); ?>" data-lng="<?php echo esc_attr($location['lng']); ?>"></div>
    </div>
<?php endif; ?>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы