Задать вопрос
patch94
@patch94
Front-end Developer, UI/UX Designer

Как заставить работать 2gis APi в Wordpress?

Не могу подключить 2gis api в wordpress. Выводится ошибка следующего содержания:

Consider using 'dppx' units, as in CSS 'dpi' means dots-per-CSS-inch, not dots-per-physical-inch, so does not correspond to the actual 'dpi' of a screen. In media query expression: (min-resolution: 144dpi)

Во время верстки все работало отлично. Не работает именно при подключении шаблона

Подключить API пытался двумя способами:
1. Через functions.php
wp_register_script('mapapi', 'http://maps.api.2gis.ru/2.0/loader.js?pkg=full&lazy=true');
wp_enqueue_script('mapapi');

Но проблема в том что подключение скрипта должно сопровождаться обязательным атрибутом data-id="dgLoader" и вообще не хочет подключаться

2. Через header.php с условием (т.к. мне нужно это api только на одной странице)
<?php if (is_page('contacts')){?>
    <script src="http://maps.api.2gis.ru/2.0/loader.js?pkg=full&lazy=true" data-id="dgLoader" ></script>
<?php } ?>

Этот способ больше похож на правду, но выводит ошибку, описанную выше.
Подскажите, какие еще могут быть способы добавления?
P.S. Плагины (если таковые имеются) не предлагать. Думаю, проблему можно решить не прибегая к сомнительным расширениям.
  • Вопрос задан
  • 2289 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
wppanda5
@wppanda5 Куратор тега WordPress
WordPress Mедведь
это не ошибка а рекомендация
правильно подключать так
function my_script() {
if ( is_page('contacts') )
	wp_enqueue_script('my-script','http://maps.api.2gis.ru/2.0/loader.js?data-id');
}

add_action( 'wp_enqueue_scripts', 'my_script' );


add_filter('clean_url','unclean_url',10,3);
function unclean_url( $good_protocol_url, $original_url, $_context) {
	if ( false !== strpos( $original_url, 'data-id' ) ) {
		remove_filter( 'clean_url', 'unclean_url', 10, 3 );
		$url_parts = parse_url( $good_protocol_url );

		return $url_parts['scheme'] . '://' . $url_parts['host'] . $url_parts['path'] . '?pkg=full&lazy=true'."' data-id='dgLoader";
	}

	return $good_protocol_url;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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