Это дополнение добавляет тип фасета карты, который работает так же, как и любой другой тип фасета. Сгенерированная карта отображает геокодированные результаты, а также может фильтровать результаты, показывая только результаты в окне просмотра карты.

Версия плагина: 1.2.0
 
WordPress плагин FacetWP Map

Особенности плагина

FacetWP Map - это универсальный инструмент для настройки поиска и фильтрации в WordPress, который улучшает пользовательский опыт, интегрируя передовые возможности картографии. Плавное сочетание функциональности карт и опций фильтрации позволяет пользователям удобно визуализировать и уточнять результаты поиска. Эта интеграция предлагает современный подход к навигации по веб-сайту и поиску контента, делая его ценным дополнением для любого сайта на WordPress, стремящегося улучшить функциональность поиска.

С интуитивным интерфейсом и обширным набором функций, данный плагин дает пользователям возможность создавать динамические фильтры и опции сортировки, визуально отображаемые на картах. Это позволяет проводить интерактивные поиски на основе определенных критериев, предлагая уникальную и увлекательную возможность для посетителей изучать контент. Дополнение гармонично работает с FacetWP Map, обогащая поиск путем сочетания мощной фильтрации с пространственным осознанием, что в конечном итоге улучшает общую удобство и эффективность функций поиска на веб-сайтах WordPress.

Используя возможности геолокации дополнения, пользователи могут не только искать контент, но также визуализировать результаты на картах. Это визуальное представление обеспечивает ясный обзор результатов поиска, позволяя быстро и эффективно перемещаться по отображенной информации. Интеграция функций картографии добавляет слой интерактивности к результатам поиска, трансформируя пользовательский опыт и предоставляя новый способ взаимодействия с контентом сайта.

Благодаря плавной интеграции с FacetWP Map, упрощается процесс создания расширенных опций поиска с помощью обширного решения, которое объединяет функции фильтрации и картографии. Эта интеграция оптимизирует поиск для пользователей, предоставляя им согласованный интерфейс для легкого изучения контента. Возможность отображения результатов поиска непосредственно на картах предлагает свежий взгляд на поиск информации, удовлетворяя пользователей, предпочитающих визуальное представление при просмотре контента.

В целом, это мощное дополнение для веб-сайтов на WordPress, желающих обогатить функциональность поиска возможностями картографии. Предоставляя пользователям интуитивные инструменты для фильтрации и визуализации результатов поиска, оно трансформирует опыт поиска, делая его интерактивным и визуально привлекательным. Плавная интеграция с FacetWP Map гарантирует беспрепятственный и эффективный процесс внедрения расширенных функций поиска, что в конечном итоге способствует более удобному и динамичному опыту просмотра..

Спецификации:

Дата выхода: 09-05-2022
Дата обновления: 23-04-2025
Тип расширения: Платный
Лицензия: GPL
Тематика: Карты и погода для FacetWP
Совместимость: W5.x W6.x
Включает в себя: Плагин
Языковые пакеты: Английский
Разработчик: FacetWP

Рейтинг:
4.4745762711864 1 1 1 1 1 (Оценок: 236)
4.4745762711864 236

Скачивание по подписке!

Вам необходимо авторизоваться на сайте и приобрести клубную подписку!

Поделись с друзьями!

 

Руководство по FacetWP Map: настройка карты, геофильтра и вывода результатов

FacetWP Map нужен не для того, чтобы просто вставить на страницу красивую карту. Его задача сложнее: связать карту Google с результатами FacetWP, показать маркеры по координатам записей и дать посетителю фильтровать каталог через обычные фасеты, радиус поиска или текущую область карты.

В этом руководстве разобрана практическая настройка для WordPress-сайта: что проверить перед установкой, как понять разницу между legacy Map add-on и новым встроенным Map facet, какие данные нужны для маркеров, как связать карту с Listing Builder, как настроить Google Maps API, Map ID, кластеризацию, окно маркера, проверку результата и диагностику типичных ошибок.

Материал рассчитан на вебмастера, разработчика или владельца каталога, который уже понимает, зачем сайту нужна карта: точки продаж, филиалы, объекты недвижимости, места проведения событий, вакансии, сервисные центры, туристические объекты или любой другой список записей с координатами. Если задача сводится к одному статичному адресу на странице контактов, это руководство тоже поможет понять, почему FacetWP Map может быть лишним.

Обложка руководства по FacetWP Map с картой, listing и маршрутом API-запроса
Обложка показывает главную связку FacetWP Map: WordPress-данные, координаты, Google Maps API и результат на странице каталога.

Какую задачу решает карта в FacetWP

Карта в FacetWP - это не отдельный каталог и не замена шаблону вывода записей. В документации FacetWP она описана именно как facet, то есть как управляющий элемент фильтрации, который работает вместе с FacetWP-enabled listing. Такая логика важна: карта берёт набор записей из активного listing, рисует маркеры по координатам этих записей и обновляется вместе с остальными фасетами.

На практике это значит, что пользователь видит не "все точки из базы", а только те маркеры, которые соответствуют текущей выборке. Если посетитель выбирает категорию, город, цену, услугу или радиус поиска, карта должна показать маркеры только для подходящих записей. Если включено фильтрование по области карты, сама видимая область карты становится фильтром: пользователь сдвигает или приближает карту, а список результатов синхронно меняется.

Главное правило FacetWP Map: сначала должен существовать корректный listing, затем координаты, и только потом карта. Если начать с карты, а listing не настроен или FacetWP не может определить запрос, маркеры не появятся, даже если API-ключ Google введён правильно.

Где карта особенно полезна

Лучшие сценарии для FacetWP Map появляются там, где запись имеет географический смысл и пользователь выбирает не только по тексту, но и по расстоянию или месту. Например, каталог филиалов может фильтроваться по услугам и району, каталог объектов недвижимости - по типу объекта и цене, справочник врачей - по специализации и близости к пользователю, а список мероприятий - по тематике и городу.

  • Каталог точек продаж, где посетитель ищет ближайший магазин или партнёра.
  • Сайт недвижимости, где карта помогает сравнить объекты в конкретном районе.
  • Каталог сервисных центров, филиалов, дилеров или представительств.
  • Портал событий, туристических мест или локальных услуг.
  • Внутренний каталог объектов, если редакторы уже ведут координаты через ACF, Meta Box или другой источник данных.

Когда продукт может быть лишним

FacetWP Map может оказаться избыточным, если на странице нужна одна точка "как нас найти", простая встроенная карта Google без фильтров или готовый store locator с отдельной системой хранения локаций. В FacetWP ценность появляется тогда, когда карта должна быть частью фильтруемого набора WordPress-записей. Если у сайта нет структуры записей, полей координат и понятного listing, сначала придётся спроектировать эти данные.

Хорошая проверка перед стартом: если каждую точку на карте можно представить как отдельную запись WordPress с названием, адресом, координатами и карточкой в listing, FacetWP Map подходит. Если точка существует только как строка в произвольном блоке текста, настройка станет искусственно сложной.

Legacy add-on и новый Map facet: почему это нужно понять до установки

Вокруг названия FacetWP Map есть важная путаница. Старый Map Facet существовал как отдельный add-on. В актуальной ветке FacetWP появился новый встроенный Map facet, а legacy Map add-on оставлен для сайтов, которые уже используют прежнюю реализацию и не готовы сразу менять код, настройки и интеграции.

Для нового проекта логика простая: не начинать с legacy add-on, а использовать новый Map facet в основном плагине FacetWP, если ваша установленная версия это поддерживает. Для уже работающего сайта нельзя просто удалить add-on на рабочем проекте и ждать, что всё сохранится без изменений. Документация отдельно предупреждает о миграции, потому что изменились Google Maps-интеграция, маркеры, кластеризация, Map ID, терминология и часть custom code.

Схема выбора между legacy Map add-on и новым Map facet в FacetWP
Схема помогает выбрать путь: оставить legacy Map на существующем сайте до миграции или настраивать новый встроенный Map facet для свежего проекта.

Если вы запускаете карту впервые

Для новой страницы каталога ориентируйтесь на новый встроенный Map facet. Это уменьшает риск строить решение на add-on, который больше не является основным путём развития. В админ-панели вам всё равно нужно создать facet типа Map, выбрать источник координат, добавить facet на страницу и связать его с listing, но отдельный legacy add-on в таком сценарии не нужен.

Если на сайте уже работает legacy Map add-on

Существующий сайт лучше переносить по отдельному плану: сделать копию на staging, обновить FacetWP, проверить текущие поля координат, отключить legacy add-on только в тестовой среде, пересоздать или обновить Map facet, проверить маркеры, Proximity, окна маркеров, кластеризацию и любые snippets. Особенно внимательно проверяйте кастомные маркеры, потому что новая реализация опирается на Advanced Markers и другие хуки.

Не меняйте legacy Map на новом рабочем сайте без резервной копии и проверки на staging. Ошибка может проявиться не сразу: карта может загрузиться, но маркеры, popup-содержимое, кластеризация или фильтрование по области карты будут вести себя иначе.

Что подготовить перед установкой и первичной настройкой

Подготовка к FacetWP Map начинается с данных. Карта может показать только те записи, у которых есть координаты в формате, понятном FacetWP. Документация указывает два основных варианта: одно поле с парой latitude, longitude или отдельные поля для широты и долготы. В реальном проекте эти данные обычно приходят из ACF Google Map field, Meta Box, импорта локаций, геокодера адресов или ручного ввода координат.

Минимальный набор для рабочей карты

Перед установкой проверьте не только наличие файлов плагина, но и структуру будущего каталога. Без этих элементов карта будет превращаться в набор случайных экспериментов.

  • Есть тип записей или обычные записи, которые нужно показывать в каталоге.
  • У каждой записи есть координаты, а не только текстовый адрес.
  • Понятно, какой listing будет фильтроваться: Listing Builder, архив, custom query, блоки или поддерживаемый page builder.
  • На странице будет только один FacetWP-enabled listing, потому что несколько активных listing на одной странице часто ломают определение запроса.
  • Создан и ограничен Google Maps API key, а нужные API включены в Google Cloud Console.
  • Понятно, нужна ли Proximity facet для поиска по радиусу или достаточно маркеров и обычных фильтров.

Почему адреса лучше не оставлять только текстом

Посетитель видит адрес как понятную строку, но карта работает с координатами. Если у записей есть только "Москва, Тверская улица", системе ещё нужно превратить этот адрес в широту и долготу. Это можно делать отдельным геокодером или полем карты, но результат всё равно должен попасть в custom field, который FacetWP сможет индексировать и использовать в Map facet.

Если координаты импортируются из внешней таблицы, проверьте десятичный формат, порядок значений и отсутствие лишних символов. Ошибки вроде перепутанных latitude/longitude, запятой как десятичного разделителя или пустых значений в части записей приводят к странной карте: маркеры появляются не там, часть точек пропадает, fallback center показывает океан или весь мир.

Установка и первичная проверка в WordPress

Установка FacetWP Map зависит от того, какой путь вы выбрали: legacy add-on для существующего сайта или новый встроенный Map facet для актуального проекта. В обоих случаях базовый плагин FacetWP должен быть активен, а страница должна содержать listing и shortcode или виджет facet.

Общий порядок установки

  1. Установите и активируйте основной плагин FacetWP стандартным способом через Plugins и загрузку ZIP-файла.
  2. Если вы обслуживаете старый сайт, где уже используется legacy Map add-on, не удаляйте его до миграционной проверки.
  3. Для нового проекта создайте или проверьте listing в Settings > FacetWP, затем создайте facet типа Map.
  4. Выберите источник координат в настройках Map facet.
  5. Добавьте listing и Map facet на одну страницу через shortcode, блок, виджет page builder или PHP-вызов.
  6. Нажмите Re-index после создания или изменения facets и источников данных.
  7. Откройте страницу без кеша и проверьте карту, маркеры, listing и консоль браузера.

Shortcode-структура для простой страницы

Если вы используете Listing Builder, простая страница может содержать listing и несколько facets. Имена в примере условные: технические имена должны совпадать с тем, что создано в админ-панели FacetWP.

[facetwp facet="search"]
[facetwp facet="service_type"]
[facetwp facet="location_map"]
[facetwp template="stores_listing"]

Такой порядок не является единственно возможным. Важнее другое: на странице должен быть один фильтруемый listing, а все facets должны относиться к нему. Если вы используете Elementor, Bricks, Beaver Builder или другой поддерживаемый подход, логика остаётся той же: карта и listing должны находиться в одном контексте FacetWP.

Координаты, listing и индекс: три основы рабочей карты

Самая частая ошибка при настройке карты - воспринимать Map facet как независимый виджет. На самом деле FacetWP строит результат через индекс и listing. Индекс хранит значения facets для записей, listing задаёт набор записей, а Map facet визуализирует записи с координатами и может фильтровать listing через область карты.

Как выбрать источник данных для маркеров

В настройке Data source выбирайте поле, где хранится широта или пара координат. Если широта и долгота лежат в разных полях, укажите поле широты как основной источник, а поле долготы - в настройке Longitude. Если используете поле, которое хранит массив или сложную структуру, проверьте документацию интеграции ACF или Meta Box и убедитесь, что FacetWP действительно индексирует нужное значение.

Для записей с несколькими адресами или филиалами на одну запись нужен отдельный подход. Документация FacetWP описывает сценарии с несколькими источниками или repeater-полями, но такой вариант лучше планировать заранее. Если просто записать несколько координат в одно текстовое поле без понятной структуры, карта может не построить ожидаемые маркеры.

Почему re-index обязателен

FacetWP не сканирует все custom fields заново при каждом клике посетителя. Он использует собственную таблицу индекса для быстрого поиска и фильтрации. Поэтому после добавления Map facet, изменения источника координат, импорта локаций, исправления адресов или изменения значений custom fields нужно запускать Re-index. Без этого карта может показывать старые точки или не показывать новые.

Мини-проверка после индексации: откройте несколько записей, сравните координаты в custom fields, затем проверьте, что эти же записи появляются в listing и получают маркеры на карте. Если listing показывает запись, а маркера нет, проблема чаще всего в координатах или источнике Map facet.

Один динамический listing на странице

FacetWP поддерживает разные способы вывода listing, но для фильтруемой страницы принцип строгий: активный FacetWP-enabled listing должен быть один. Дополнительные блоки с похожими карточками могут быть статичными, но если на странице два динамических listing с классом facetwp-template, FacetWP может выбрать не тот запрос или показать ошибку автоопределения.

Для страницы с картой это особенно заметно. Карта строится по одному набору результатов, а пользователь визуально ожидает, что список рядом с картой показывает те же элементы. Если запросов несколько, карта и карточки могут "разъехаться": маркер относится к одному набору, список - к другому.

Настройка Map facet после установки

Настройки Map facet лучше проходить не сверху вниз механически, а по цепочке: данные, поведение карты, отображение маркеров, производительность и проверка. Так проще понять, что изменится после каждого параметра и как откатиться, если результат не подошёл.

Карта ключевых настроек FacetWP Map после установки
Схема связывает основные настройки: источник координат, Google API, Map ID, кластеризацию, область фильтрации и проверку результата.

Google Maps API key

Для Map и Proximity facets нужен действующий Google Maps API key. В Google Cloud Console обычно включают Maps JavaScript API, а для Proximity и автодополнения адреса также проверяют Geocoding API и Places API (New) в зависимости от выбранного режима. Ключ нужно ограничить по сайту и разрешённым API, иначе его легче случайно использовать не по назначению.

После добавления ключа используйте встроенную проверку Google API в настройках FacetWP, если она доступна в вашей версии. Если карта пишет This page can't load Google Maps correctly, не меняйте хаотично настройки FacetWP. Сначала откройте консоль браузера и Google Cloud Console: чаще всего причина в неверном ключе, не включённом API, ограничении referrer, отключённой оплате проекта или конфликте legacy/new Places API.

Map ID и cloud-based styling

В новой реализации Map facet старый подход с JSON-стилями карты заменён cloud-based styling через Google Map ID. Map ID не обязателен для базовой карты, но он нужен, если вы хотите управлять стилем карты, типом рендеринга или использовать связанные возможности Google Cloud Console. Если раньше сайт полагался на импортированный JSON-дизайн карты, при миграции нужно заранее проверить, как этот стиль переносится в новую систему.

Безопасный подход такой: сначала добиться рабочей карты без кастомного Map ID, затем добавить Map ID, проверить рендеринг, стиль, зум, маркеры, Proximity и поведение на мобильных. Если после Map ID карта стала выглядеть иначе или появились предупреждения, временно уберите Map ID и вернитесь к базовой проверке.

Marker clustering и overlapping markers

Marker clustering полезен, когда маркеров много или они сосредоточены в одном регионе. Вместо десятков точек поверх друг друга пользователь видит кластеры с числом маркеров. На большом каталоге это улучшает восприятие и снижает визуальный шум. При очень близких координатах дополнительно помогает Overlapping Marker Spiderfier: после приближения маркеры могут "разойтись", чтобы пользователь мог выбрать нужный.

Не включайте кластеризацию только потому, что это выглядит современно. Для маленького каталога из десяти точек она может мешать: посетитель ожидает увидеть отдельные филиалы сразу. Для большого каталога, наоборот, отсутствие кластеризации делает карту трудно читаемой.

Marker limit, pagination и Load more

Настройка Marker limit определяет, показывать ли маркеры для всех подходящих результатов или только для текущей страницы результатов. В документации указано важное ограничение: вариант "current page results" работает с Pager facet типа Page numbers, но не с Load more. Это нужно учитывать при проектировании интерфейса каталога.

Если пользователь видит карту рядом со списком и ожидает, что маркеры соответствуют только видимым карточкам, current page может быть удобнее. Если карта должна показывать всю текущую выборку независимо от пагинации, логичнее показывать все подходящие маркеры. Для больших каталогов это решение нужно тестировать с реальными данными, потому что карта с сотнями маркеров и тяжелыми info windows может замедлить страницу.

Info window content и AJAX-загрузка

Окно маркера должно отвечать на вопрос "что это за точка и куда перейти дальше". Обычно достаточно названия, адреса, одной короткой детали и ссылки на запись. Если в popup вставить большую карточку, галерею, форму или длинное описание, карта станет тяжёлой и неудобной. Для множества маркеров рассмотрите Info window ajax loading: контент окна будет подгружаться при клике, а не сразу для всех точек.

Высота и адаптивность карты

Карта не появится нормально, если контейнер не имеет понятной высоты. В настройке Map width / height можно указать размеры, но для адаптивной темы часто удобнее задать высоту через CSS. Это безопасная правка внешнего вида: она не меняет логику фильтрации и легко откатывается.

Добавляйте CSS в дочернюю тему, в безопасный CSS-раздел темы или через проверенный snippet-плагин. Не вставляйте его в файлы ядра WordPress или FacetWP.

.facetwp-type-map {
  min-height: 460px;
}

@media (max-width: 768px) {
  .facetwp-type-map {
    min-height: 360px;
  }
}

После добавления CSS проверьте страницу на настольном экране и мобильном устройстве. Если карта показывает серые полосы или слишком сильно отдалена, вернитесь к настройкам минимального зума и fallback-центра. Если CSS не подошёл, удалите snippet или верните прежнюю высоту.

Связка Map facet, Proximity и фильтрование по области карты

Самая сильная часть FacetWP Map раскрывается не в одиночной карте, а в сочетании с другими facets. Proximity facet добавляет поиск по радиусу от введённого адреса или найденного положения пользователя. Обычные facets фильтруют по типу записи, услуге, категории или цене. А включение фильтрации по области карты позволяет посетителю сузить выдачу движением карты.

Как работает Proximity вместе с картой

Пользователь вводит адрес или использует кнопку определения местоположения, выбирает радиус, и FacetWP возвращает записи внутри этого радиуса. Карта автоматически подстраивает область просмотра под найденные локации. Если Proximity используется, на карте появляется отдельный маркер центра поиска, который можно настраивать или отключать через документацию по Map/Proximity.

Точность определения местоположения не стоит обещать как абсолютную. Browser Geolocation API может определить примерное положение по IP или запросить более точные данные у браузера, но пользователь может отказать в доступе, находиться за VPN или получить неточный центр. Поэтому интерфейс лучше проектировать так, чтобы человек мог вручную исправить адрес.

Когда включать фильтрование через viewport

Фильтрование через текущую область карты полезно для каталогов, где пользователь естественно "исследует район": недвижимость, достопримечательности, локальные услуги, события, парковки, филиалы. После включения Enable map filtering пользователь двигает карту, и listing обновляется по координатам видимой области.

Для магазина с поиском ближайшей точки viewport-фильтр может быть менее очевиден, чем радиус через Proximity. Посетитель чаще хочет ввести адрес и увидеть ближайшие филиалы, а не вручную двигать карту. В таком случае кнопку фильтрования по области можно оставить доступной, но не делать её главным способом поиска.

Практичные идеи применения

Один и тот же набор настроек можно превратить в разные интерфейсы. Главное - начинать с пользовательской цели, а не с желания показать карту любой ценой.

  • Store locator. Цель пользователя - найти ближайший филиал. Используйте записи "Store", координаты, Proximity facet, категории услуг и короткое info window с адресом.
  • Недвижимость. Цель - сравнить объекты в районе. Используйте карту рядом с listing, фильтры по цене и типу объекта, кластеризацию и аккуратный popup с ключевыми характеристиками.
  • События или места. Цель - исследовать город или регион. Здесь полезны категории, даты, viewport-фильтр и fallback-центр на нужный город.
  • Сервисная сеть. Цель - понять, где доступна конкретная услуга. Фильтруйте по услуге, бренду или типу поддержки, а в popup показывайте только данные, которые помогают выбрать точку.
Практический сценарий использования FacetWP Map для store locator в WordPress
Сценарная схема показывает путь от цели пользователя к фильтрам, карте и видимому результату в каталоге.

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

Разберём реалистичный сценарий: сайт компании имеет несколько филиалов, у каждого есть адрес, координаты, список услуг и страница с деталями. Нужно сделать страницу, где посетитель выбирает услугу, вводит город или адрес, задаёт радиус и видит список филиалов с маркерами на карте.

Цель

Получить страницу "Филиалы", где listing показывает карточки филиалов, Map facet показывает те же филиалы на карте, Proximity facet ищет по радиусу, а обычный facet фильтрует по услуге. Пользователь должен видеть согласованный результат: если список сократился до трёх филиалов, карта тоже показывает эти три точки или соответствующие кластеры.

Подготовка

  • Создайте тип записей store или используйте существующий тип, если филиалы уже хранятся в WordPress.
  • Добавьте поля адреса, широты, долготы и услуг. Для услуг лучше использовать таксономию или повторяемое поле с понятной структурой.
  • Заполните координаты минимум у нескольких тестовых записей.
  • Создайте Listing Builder listing с карточкой филиала: название, адрес, краткий список услуг и ссылка на страницу.
  • Создайте facets: Map, Proximity, например service_type и при необходимости Reset.

Шаги настройки

  1. В Settings > FacetWP > Listings создайте listing для филиалов и убедитесь, что он выводит только нужный тип записей.
  2. В Map facet выберите поле координат как Data source. Если широта и долгота в отдельных полях, заполните и Longitude.
  3. Укажите размеры карты. Для стартовой проверки используйте фиксированную высоту, например 460px, чтобы исключить проблему нулевой высоты контейнера.
  4. Включите Marker clustering, если тестовых или будущих точек много.
  5. Создайте Proximity facet, настройте поле координат и радиус по умолчанию, если это предусмотрено вашей конфигурацией.
  6. Добавьте listing и facets на страницу через shortcodes или виджеты.
  7. Запустите Re-index и откройте страницу в режиме без кеша.

Проверка результата

Сначала откройте страницу без выбранных filters. Вы должны увидеть listing и карту с маркерами. Затем выберите услугу: и список, и карта должны сократиться до точек, где эта услуга доступна. После этого введите адрес в Proximity и задайте радиус. Карта должна приблизиться к найденным точкам, а listing - показать филиалы в радиусе.

Что может пойти не так

Если список фильтруется, а карта нет, проверьте источник координат и re-index. Если карта показывает маркеры, но Proximity не находит адрес, проверьте Google API и Places/Geocoding. Если карта и список показывают разные наборы, проверьте, нет ли на странице второго динамического listing или стороннего виджета, который перехватывает запрос.

Проверка результата, скорость и SEO-нюансы

После первичной настройки важно проверить не только "видна ли карта", но и поведение в реальном пользовательском сценарии. FacetWP использует URL-параметры для выбранных facets, AJAX для обновления результатов и Google Maps API для карты. Поэтому качество результата зависит от темы, кеша, сторонних оптимизаций, структуры listing и объёма данных.

Чек-лист проверки на странице

  • Карта загружается без предупреждения Google в публичной части сайта.
  • Маркеры соответствуют текущему listing, а не всем записям сайта.
  • Обычные facets меняют и listing, и карту.
  • Proximity корректно принимает адрес и радиус, если используется.
  • Reset возвращает страницу в понятное состояние.
  • На мобильном карта имеет высоту, не перекрывает фильтры и не ломает прокрутку страницы.
  • Консоль браузера не показывает ошибки Google Maps API, JavaScript-конфликты или ошибки FacetWP.

Кеш, минификация и отложенная загрузка скриптов

FacetWP обновляет результаты через AJAX, а карта зависит от JavaScript. Поэтому агрессивная оптимизация может ломать порядок загрузки. В документации по производительности FacetWP отдельно указано, что HTML minification и script deferring часто становятся причиной проблем, особенно если удаляются HTML-комментарии, которые нужны FacetWP для определения listing.

Безопасная диагностика такая: временно отключите кеш, минификацию HTML, отложенную загрузку скриптов и объединение JavaScript на тестовой странице. Если карта и фильтры начали работать, возвращайте оптимизации по одной и добавляйте исключения для FacetWP/Google Maps там, где это поддерживает ваш кеш-плагин.

SEO и URL-параметры FacetWP

FacetWP добавляет выбранные filters в query string URL. Это удобно для обмена ссылками на отфильтрованную выборку, но не означает, что каждая комбинация filters должна индексироваться поисковиками. Для карты и локальных каталогов SEO-основа обычно строится не на бесконечных сочетаниях параметров, а на качественных страницах локаций, понятной структуре каталога, индексируемых landing pages для важных городов или категорий и аккуратном управлении canonical/noindex для служебных фильтров.

Если карта используется для локального бизнеса, не обещайте себе SEO-рост только от FacetWP Map. Карта улучшает навигацию и пользовательский сценарий, но поисковую ценность дают отдельные страницы объектов, уникальный контент, адресные данные, внутренняя перелинковка и технически доступные URL.

Почему карта не работает и как диагностировать проблему

Диагностику FacetWP Map лучше вести от основы к деталям: сначала listing, затем индекс, затем координаты, затем Google API, затем JavaScript и кеш. Если сразу менять Map ID, кластеризацию и CSS, легко исправить симптом случайно и не понять настоящую причину.

Диагностическая карта ошибок FacetWP Map: listing, координаты, Google API и кеш
Диагностическая схема помогает идти по цепочке: симптом, вероятная причина, проверка и безопасное исправление.

Карта не появляется вообще

Симптом: на странице пустое место, карта не загружается или контейнер почти нулевой высоты. Возможные причины - неверная высота, JavaScript-ошибка, не добавлен Map facet, кеш задерживает скрипты или Google API не загрузился.

Что проверить: наличие shortcode или виджета Map facet, высоту контейнера .facetwp-type-map, консоль браузера, отключение кеша на тесте и корректность API key.

Как исправить: задайте понятную высоту карты, временно отключите оптимизацию скриптов, проверьте Google API, затем возвращайте настройки по одной. Если проблема появилась после добавления Map ID, временно удалите Map ID и проверьте базовую карту.

Карта видна, но маркеров нет

Симптом: Google Map загружается, но точек нет или карта показывает fallback-центр. Чаще всего FacetWP не видит координаты в индексе или listing не содержит записей с валидными координатами.

Что проверить: выбранный Data source, отдельное поле Longitude, формат координат, наличие записей в listing, запуск Re-index, один динамический listing на странице.

Как исправить: исправьте формат координат, переиндексируйте FacetWP, проверьте несколько записей вручную. Если координаты лежат в сложном ACF repeater, используйте официальный подход для нескольких локаций вместо произвольного текстового поля.

Появляется ошибка Google Maps

Симптом: карта сообщает This page can't load Google Maps correctly, а в консоли видны ошибки ключа, проекта или API. Это не проблема listing, потому что карта не проходит этап загрузки Google Maps.

Что проверить: включён ли Maps JavaScript API, привязан ли billing к проекту, совпадают ли HTTP referrers с доменом, разрешены ли нужные API, нет ли legacy/new конфликта для Places API при Proximity.

Как исправить: исправьте настройки Google Cloud Console, ограничьте ключ по домену и нужным API, затем используйте тест Google API в FacetWP и перезагрузите страницу без кеша. Если ключ менялся, подождите применения изменений и очистите кеш.

Фильтры меняют список, но карта остаётся прежней

Симптом: карточки listing обновляются, а маркеры не меняются. Возможные причины - карта относится к другому listing, на странице несколько динамических template, JavaScript был нарушен оптимизацией или Map facet не получает новый набор результатов.

Что проверить: количество элементов с классом facetwp-template, расположение facets и listing, консоль браузера, работу без кеша и отложенной загрузки скриптов.

Как исправить: оставьте один FacetWP-enabled listing, дополнительные блоки сделайте статичными, отключите проблемную оптимизацию JavaScript или добавьте исключения.

Маркеры есть, но страница стала медленной

Симптом: первая загрузка или фильтрация заметно тормозит, особенно на каталоге с большим количеством точек. Причина может быть не только в карте: тяжёлый listing, много facets, большие popup-окна, неэффективные запросы темы, неудачная пагинация или слишком много маркеров на карте.

Что проверить: количество маркеров, содержимое info windows, число facets, настройки пагинации, Query Monitor, работу без кеша и реальное время AJAX-запросов.

Как исправить: включите кластеризацию, упростите info window, используйте AJAX-загрузку popup-контента при необходимости, уменьшите число активных facets, оптимизируйте listing и рассмотрите FacetWP Caching add-on для высоконагруженных страниц.

Вопросы по настройке и ограничениям FacetWP Map

Нужно ли устанавливать отдельный Map add-on для нового сайта?

Если вы настраиваете карту впервые на актуальной версии FacetWP, ориентируйтесь на новый встроенный Map facet и не начинайте с legacy Map add-on. Отдельный add-on нужен прежде всего для существующих legacy-сценариев, где сайт ещё не мигрировал.

Почему Map facet не показывает маркеры без listing?

Map facet берёт записи из FacetWP-enabled listing. Без listing у FacetWP нет запроса, к которому можно привязать facets и маркеры. Даже если карта визуально похожа на самостоятельный список точек, технически она остаётся facet.

Можно ли хранить только адрес, без координат?

Для отображения маркеров карте нужны координаты. Адрес можно использовать как исходные данные, но его нужно геокодировать и сохранить в поле, которое FacetWP сможет индексировать. Для надёжной карты лучше хранить проверенные latitude/longitude, а адрес показывать в карточке или info window.

Подойдёт ли FacetWP Map для WooCommerce?

Да, если товары или связанные записи имеют географический смысл и listing построен корректно. Например, товар может быть связан с точками продажи, складом или дилером. Но если нужна обычная карта магазина или доставка по зонам, специализированный WooCommerce-инструмент может быть проще.

Что выбрать: Proximity или фильтрование по области карты?

Proximity удобен, когда пользователь вводит адрес и ищет ближайшие результаты в радиусе. Фильтрование по области карты удобно, когда пользователь исследует район вручную. Эти подходы можно сочетать, но интерфейс должен ясно объяснять, какой фильтр сейчас активен.

Нужно ли включать Marker clustering всегда?

Нет. Кластеризация нужна при большом количестве близких маркеров. Для маленького набора точек она может скрывать детали и добавлять лишний клик. Проверяйте на реальных данных, а не на пустой тестовой странице.

Как проверить, что проблема в Google API, а не в FacetWP?

Если сама карта Google не загружается и консоль показывает ошибки ключа, проекта, referrer или API, начинайте с Google Cloud Console. Если карта загружается, но нет маркеров или listing не синхронизируется, переходите к FacetWP: listing, индекс, координаты, shortcodes и кеш.

Когда FacetWP Map будет удачным выбором

FacetWP Map стоит использовать, когда карта должна быть не декоративным блоком, а частью фильтруемого WordPress-каталога. Продукт особенно хорошо раскрывается в связке с Listing Builder, custom fields, Proximity facet, категориями, таксономиями и аккуратно настроенным Google Maps API.

Если вы готовы подготовить координаты, проверить listing, переиндексировать данные и протестировать карту без агрессивного кеша, FacetWP Map даст понятный сценарий: посетитель выбирает параметры, видит маркеры, уточняет район или радиус и переходит к подходящей записи. Если же нужна только одна статичная карта или полностью готовый store locator без FacetWP-логики, лучше сравнить альтернативы до внедрения.

После проверки на staging и понимания разницы между legacy add-on и новым Map facet можно скачать FacetWP Map и протестировать его на копии сайта с реальными координатами, listing и несколькими типовыми фильтрами.

Автор: Редакция JoomFox.org

Вы не зарегистрированы, чтобы оставлять комментарии.