Реализовать Google Maps JS на WordPress

Вопрос или проблема

Я ищу способ реализовать этот код на своем сайте wordpress как можно эффективнее

https://developers.google.com/maps/documentation/javascript/styling

и я хочу, чтобы JS загружался только на постах/страницах, где я буду использовать карту. Не могу понять, с чего начать!

ИЗМЕНЕНИЕ:

А что если я использую часть enqueue внутри функции? Это хорошая конструкция?

function x_shortcode_google_map( $atts, $content = null ) {
  extract( shortcode_atts( array(
    'id'           => '',
    'class'        => '',
    'style'        => '',
    'lat'          => '',
    'lng'          => '',
    'drag'         => '',
    'zoom'         => '',
    'zoom_control' => '',
    'height'       => '',
    'hue'          => '',
    'no_container' => '',
    'api_key'      => ''
  ), $atts, 'x_google_map' ) );

  static $count = 0; $count++;

  $id           = ( $id           != ''     ) ? $id : 'x-google-map-' . $count;
  $class        = ( $class        != ''     ) ? 'x-map x-google-map ' . esc_attr( $class ) : 'x-map x-google-map';
  $style        = ( $style        != ''     ) ? 'style="' . $style . '"' : '';
  $height       = ( $height       != ''     ) ? 'style="padding-bottom: ' . $height . ';"' : '';
  $no_container = ( $no_container == 'true' ) ? '' : ' with-container';

  $js_params = array(
    'lat'         => ( $lat          != ''     ) ? $lat : '40.7056308',
    'lng'         => ( $lng          != ''     ) ? $lng : '-73.9780035',
    'drag'        => ( $drag         == 'true' ),
    'zoom'        => ( $zoom         != ''     ) ? $zoom : '12',
    'zoomControl' => ( $zoom_control == 'true' ),
    'hue'         => ( $hue          != ''     ) ? $hue : '',
  );

  $data = cs_generate_data_attributes( 'google_map', $js_params );

  $script_url="https://maps.googleapis.com/maps/api/js";

  if ( $api_key ) {
    $api_key = esc_attr( $api_key );
    $script_url = add_query_arg( array( 'key' => $api_key ), $script_url );
  }

  wp_register_script( 'cs-google-maps', $script_url );
  wp_enqueue_script( 'cs-google-maps' );

  $output = "<div id=\"{$id}\" class=\"{$class}{$no_container}\" {$data} {$style}><div class=\"x-map-inner x-google-map-inner\" {$height}></div>" . do_shortcode( $content ) . "</div>";

  return $output;
}

add_shortcode( 'x_google_map', 'x_shortcode_google_map' );

Прежде всего, правильно подключите JS API Google Maps. ищите функцию, которая подключена к wp_enqueue_scripts и wp_enqueue_script() для подключения Google Maps API

function wp_mk_scripts() {
    if ( is_singular() ) {
        wp_enqueue_script( 'wp-mk-maps-js', 'https://maps.googleapis.com/maps/api/js', array( 'jquery' ), null, true );
        wp_enqueue_script( 'wp-mk-gmaps-function', get_stylesheet_directory_uri() . '/js/maps.js', array( 'jquery' ), null, true );
    }
}
add_action( 'wp_enqueue_scripts', 'wp_mk_scripts' );

затем в файле theme_folder/js/maps.js вставьте код карты между тегами <script></script> в Стиль Google Maps

Теперь вызовите <div id="map"></div> в любом месте шаблона, чтобы отобразить карту.

Ответ или решение

Внедрение Google Maps на WordPress: Подробное Руководство

Внедрение карт Google в ваш сайт на WordPress — задача, которая может показаться сложной, но с правильным подходом это достаточно легко реализовать. В данном руководстве мы рассмотрим, как корректно подключить JavaScript-код Google Maps на страницы или в посты вашего сайта, чтобы он загружался только тогда, когда это необходимо.

Шаг 1: Подключение Google Maps API

Прежде всего, вам нужно зарегистрироваться в Google Cloud и получить API-ключ для Google Maps. После получения ключа вы можете перейти к его подключению в ваш WordPress.

  1. Создайте функцию для подключения скриптов и добавьте её к хуку wp_enqueue_scripts. Эта функция позволит загружать скрипты Google Maps только на страницах, где они используются.
function wp_enqueue_google_maps() {
    if ( is_singular() ) { // Проверяем, является ли страница одиночным постом или страницей
        $api_key = 'ВАШ_API_КЛЮЧ'; // Замените на ваш ключ
        wp_enqueue_script( 'google-maps-api', 'https://maps.googleapis.com/maps/api/js?key=' . $api_key, array(), null, true );
        wp_enqueue_script( 'custom-maps', get_template_directory_uri() . '/js/maps.js', array('google-maps-api'), null, true );
    }
}
add_action( 'wp_enqueue_scripts', 'wp_enqueue_google_maps' );

Шаг 2: Создание JavaScript-файла

Создайте файл maps.js в папке вашего шаблона, в каталоге js. В этом файле будет содержаться логика инициализации карты.

function initMap() {
    var mapOptions = {
        center: { lat: 40.7056308, lng: -73.9780035 },
        zoom: 12,
        draggable: true, // Перетаскивание карты
        styles: [ /* Ваши стили карты */ ] // Стили из документации Google
    };

    var map = new google.maps.Map(document.getElementById('map'), mapOptions);

    var marker = new google.maps.Marker({
        position: new google.maps.LatLng(40.7056308, -73.9780035),
        map: map,
        title: 'Место'
    });
}

// Убеждаемся, что функция будет вызвана только после загрузки скрипта
google.maps.event.addDomListener(window, 'load', initMap);

Шаг 3: Использование Shortcode

Теперь добавьте возможность использования шорткода для создания карты в контенте ваших постов и страниц.

function x_shortcode_google_map( $atts ) {
    $atts = shortcode_atts( array(
        'id' => 'map',
        'lat' => '40.7056308',
        'lng' => '-73.9780035',
        'zoom' => '12',
    ), $atts );

    // Создаем HTML-код для отображения карты
    return '<div id="' . esc_attr($atts['id']) . '" style="width: 100%; height: 400px;"></div>';
}
add_shortcode('google_map', 'x_shortcode_google_map');

Теперь вы можете использовать шорткод [google_map] в любом месте на вашем сайте, чтобы вставить карту.

Шаг 4: SEO Оптимизация

  • Используйте соответствующие заголовки и подзаголовки (H1, H2, H3) для улучшения восприятия и индексации.
  • Добавляйте атрибуты alt к изображениям и <time> к дате, если у вас есть интерактивные элементы.
  • Убедитесь, что у вашего кода есть минимальная задержка загрузки, что улучшает пользовательский опыт и SEO.

Заключение

Внедрение Google Maps на ваш WordPress-сайт — это не только полезный функционал, но и способ улучшить пользовательский опыт. Следуя данному руководству, вы сможете эффективно интегрировать карты в ваш сайт и настроить их так, чтобы они загружались только на страницах, где это необходимо.

Оцените материал
Добавить комментарий

Капча загружается...