Как добавить Google Maps API Key в Classipress

Речь идет о проблемах с работой гео-сервисов от Google, которые задействованы в родительском шаблоне или дочерней теме. В Classipress наиболее наглядно это проявляется при вызове карты на странице объявления. На новых сайтах вместо карты там появляется вот такое сообщение:

А в консоли видим «Google Maps API error: MissingKeyMapError» и чуть ниже «Google Maps API warning: NoApiKeys». И без перевода не трудно догадаться, что речь идёт о каком-то ключе, вернее об его отсутствии.
Что еще за ключ? Ведь раньше всё замечательно работало без всяких ключей.
Да, действительно, работало и сейчас работает. Но только на сайтах, которые были созданы до 22.06.2016 г. Для новых сайтов теперь необходимо получать в Google Maps API ключи. Но в нашем случае проблема кроется не в самих ключах, а в том, что в настройках шаблонов Classipress вплоть до версии 3.5.6 поле для ввода этого ключа отсутствует. И если у вас именно такой случай, то решить эту проблему можно следующим образом.

Найдите в файле ../includes/enqueue.php вашего шаблона фрагмент кода:

// only load gmaps when we need it
	if ( is_singular( APP_POST_TYPE ) ) {
		$cp_gmaps_lang = esc_attr( $cp_options->gmaps_lang );
		$cp_gmaps_region = esc_attr( $cp_options->gmaps_region );
		$google_maps_url = ( is_ssl() ? 'https' : 'http' ) . '://maps.googleapis.com/maps/api/js';
		$google_maps_url = add_query_arg( array( 'language' => $cp_gmaps_lang, 'region' => $cp_gmaps_region ), $google_maps_url );

		wp_enqueue_script( 'google-maps', $google_maps_url, array( 'jquery' ), '3.0' );
	}

и замените его на этот:

// only load gmaps when we need it
	if ( is_singular( APP_POST_TYPE ) ) {
		$cp_gmaps_lang = esc_attr( $cp_options->gmaps_lang );
		$cp_gmaps_region = esc_attr( $cp_options->gmaps_region );
	// API key load gmaps	
		$cp_gmaps_key = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
		$google_maps_url = ( is_ssl() ? 'https' : 'http' ) . '://maps.googleapis.com/maps/api/js';
		$google_maps_url = add_query_arg( array( 'language' => $cp_gmaps_lang, 'region' => $cp_gmaps_region, 'key' => $cp_gmaps_key ), $google_maps_url );

		wp_enqueue_script( 'google-maps', $google_maps_url, array( 'jquery' ), '3.0' );
	}

Не забудьте только заменить “иксы” на значение своего ключа в параметре


$cp_gmaps_key = ‘XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX’;

P.S. Иногда встречаются дочерние темы для которых наличие прописанного API-key в родительском шаблоне не гарантирует нормального функционирования всех используемых в теме гео-сервисов от Google. В таком случае следует отыскать похожий фрагмент кода в functions.phpдочерней темы и добавить в него свой API-key по этому же принципу и подобию.

Статья взята с сайта https://procp.ru



Опубликовано 16 марта, 2019 NeonaFM в категории "ClassiPress

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *