
Очередное пополнение в разделе вопросов-ответов, хотя сегодняшняя тема по сравнению с остальными не такая уж и «мелкая». Ситуация следующая — иногда в премиальных шаблонах и плагинах разработчики встраивают API Google Maps в исходных код, но при этом не предусматривают никаких возможностей по его отключению. В результате даже, если вам не нужна соответствующая функция, все равно приходится наблюдать предупреждения/ошибки о том, что не найден API ключ. Сегодня поведаю три способа как это исправить.
Создателей платных тем, в принципе, можно понять — они хотят максимально «напичкать» их разными функциями, чтобы даже новичок смог добавить на сайт практически любую фишку. Понятно, что рыться в десятках плагинов Google Карт или устанавливать их вручную начинающему юзеру будет проблематично. Однако почему при этом разработчики не предусматривают параметр для полного отключения данной функциональности, мне лично не понятно.
В общем в одном из премиальных макетов у меня постоянно отображались следующие предупреждения в консоли инструментов разработчика Chrome.

Disable Google Maps
Начну с самого простого и легкого способа — данный плагин работает сразу после активации, ничего дополнительно настраивать не требуется. Однако, как вы можете видеть из скриншота ниже, Disable Google Maps достаточно старый модуль — более 3х лет он не обновлялся.

Сложно сказать наверняка работает ли решение сейчас, т.к. с момента запуска прошло много времени, и некоторые алгоритмы гугла могли поменяться. Надо тестить. Кроме того, в саппорте указано, что он блокирует все соответствующие API, поэтому если вам нужно выборочно оставить карты в плагинах, но убрать из шаблона, — метод не подойдет.
Clearfy
Про модуль Clearfy для оптимизации сайта писал в другом своем блоге, а недавно там тоже обнаружил опцию отключения карт. Находится она в блоке настроек «Производительность» — во вкладке «Google сервисы».

- отключить карты, используемые плагинами/темами;
- удалить соответствующая скрипты/iframe элементы с исходного кода страниц;
- указать где карты будут сохранены (помогает оставить их в контактах, что весьма логично).
В принципе, Clearfy и так неплох, поэтому если его уже юзаете, можете смело юзать эту опцию.
Разбираем код макета + wp_deregister_script
К сожалению, ни один из указанных выше вариантов для меня не сработал. Изначально я думал, что создатели премиум шаблона как-то по хитрому подключили скрипт, но оказалось, что всему виной плагин Power Builder.
Алгоритм данного способа состоит из трех шагов:
1. Во-первых, вам нужно понять как именно интегрированы карты. Чтобы не просматривать все файлы я использовал программу массового поиск текста в файлах WinGrep. Пытался найти любые фразы по типу «maps», «api», «map», «google».
2. Далее изучаете найденный файл. В файле functions.php вашей темы может быть что-то вроде такого:


3. Третий шаг — избавляемся от лишнего кода. В первом рассмотренном случае, теоретически, можно просто убрать лишнюю строку, поскольку вы и так работаете непосредственно с этим макетом. Для модуля лучше отключать функцию через wp_deregister_script, описанную в посте про оптимизацию WordPress header.
add_action( 'wp_enqueue_scripts', 'remove_some_stylesheet', 20 ); function remove_some_stylesheet() { wp_deregister_script( 'google-maps-api'); } |
Хотя и для шаблона этот метод считается более правильным. Главное здесь — указывать то же название скрипта, который изначально подключался. Данный код добавляете в конец файла функций дочерней/основной темы.
Итого. После использования третьего варианта решения предупреждения в консоле отображаться перестали. Как видите, это самый сложный, но наиболее эффективный и универсальный подход. Если знаете еще какие-то секреты о том как удалить Google Maps с сайта, рассказывайте ниже.