Геотаргетинг WordPress плагин скрыть или показать виджет для определённых стран. Руководство по реализации геотаргетинга на WordPress


Геотаргетинга для геолокации пользователей в зависимости от их страны пребывания. Плагин идеально подходит для сайтов-афилиатов таких как онлайн-казино, где Вам нужно сортировать посетителей в зависимости от страны посещения или города, для сайтов коммерции, где посетителям нужно отображать разные товары в зависимости от страны. Также есть бесплатная версия плагина для WordPress. Geotargeting совместим с базами данных GeoIP2 и обладает API службами для отображения наиболее точных данных. Основные преимущества плагина:

Создание регионов. Вы сможете группировать страны и города в пользовательском порядке для упрощения выбора пользователей. Например, можно создать регион под названием Европа и еще один с названием Америка, а потом использовать эти названия в шорткодах.

Генератор шорткодов. При помощи мощного генератора шорткодов Вы сможете показывать различную информацию в зависимости от страны или региона.

Поддержка многих сервисов. Плагин основан на бесплатной базе данных, но также поддерживаются Maxmind API premium, поэтому Вы можете использовать онлайн api с этим плагином. Автоматически вычисляется IP пользователя, вне зависимости от сервиса (Cloudflare, Sucuri, Akamai, Ezoic или Reblaze)

Виджеты. Можно отображать не только различный контент, но после активации плагина можно показывать различные виджеты.

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

Таргетинг в WordPress меню. Можно показывать или скрывать отдельные пункты меню пользователям, используя соответствующие опции.

Модули Visual Composer . Плагин Geotargeting полностью поддерживает Visual Composer от WPBakery путём добавления 3 модулей, где Вы сможете выбирать любые элементы для геотаргетинга.

Совместимость с плагинами кеша. Недостаток геотаргетинга – проблемы с кешем страниц. Включив AJAX, все фильтры, шорткоды и опции геотаргетинга будут загружены после выгрузки страницы из кеша. Вы получите скорость загрузки из кеша и преимущества геотаргетинга. Совместимо с WP-Super Cache, W3 Total cache, Wp Rocket и другими плагинами.

WooCommerce и лёгкая электронная коммерция. Теперь Вы можете с легкостью скрывать продукты в зависимости от страны или города посетителя. Вы можете либо полностью скрыть продукт, либо показать сообщение о его недоступности в данном регионе.

Простой для разработчиков. Плагин использует мощное PHP API, геотаргетинг контента происходит прямо на шаблоне. Совместим с плагином Advanced Custom Fields. Код чистый и хорошо организован, с пометками и фильтрами.

Геотаргетинг – это предоставление конкретного контента посетителям сайтов на основе их географического местоположения, обычно страны или города, определение которых происходит по их IP-адресу .

Эта техника существует уже так давно, что стала повсеместной. Google предоставляет результаты поиска, адаптированные к вашему местоположению, Amazon предлагает персонализированные домашние страницы с рекомендуемыми продуктами, а eBay - отображает местную валюту.

Более свежим примером геотаргетинга является сам WordPress . Актуальный релиз 4.8 включает в себя новый виджет панели инструментов, который отображает предстоящие события, адаптированные к вашему географическому положению:

Использование Google Analytics для определения местоположения посетителей

Вы можете использовать Google Analytics , чтобы узнать больше о своих посетителях и том, откуда они. Для этого войдите в аналитический сервис и перейдите на вкладку Аудитория> Демография> Гео> Местоположение :

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

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

  • Добавить на сайт немецкий перевод;
  • Выделить больше времени на продвижение контента среди американской аудитории (например, организовать рекламные акции к выходным дням в США );
  • Сообщить немецким посетителям, что вы собираете их информацию в соответствии с законом Евросоюза о файлах cookie ;
  • Установить связь с посетителями, приветствуя их соответствующе местоположению (например, скажите «G"Day! » австралийским посетителям );
  • Продемонстрировать отзывы клиентов с той же географической местности, откуда пользователь;
  • Оповестить посетителей из США, Канады, Австралии, Великобритании и Германии о том, что вы осуществляете доставку до их местонахождения.

Использование геотаргетинга в WordPress

Рассмотрим простой пример использования геотаргетинга для сайта: отображение приветственных сообщений посетителям из разных стран.

Отображение приветственного сообщения

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

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

Шаг 1: Устанавливаем плагины

Для реализации этого примера мы будем использовать несколько бесплатных плагинов, доступных в WordPress Plugin Directory :

  • Custom Content by Country ;
  • Widgets on Pages ;
  • Shortcode Widget .

Custom Content by Country – это простой плагин, который применяет шорткоды для отображения контента в зависимости от местоположения пользователей. Мы будем использовать его для геотаргетинга контента. Начнем с того, что будем использовать его для отображения альтернативного приветствия.

Я хочу отобразить альтернативное приветственное сообщение над заголовком темы, поэтому использую плагин Widgets on Pages для добавления виджета в заголовок.

Плагин Shortcode Widget позволит легко использовать шорткоды на сайте, без необходимости добавлять фильтр в файл functions.php или создавать дочернюю тему.

Шаг 2: Создаем специализированный виджет

В этом примере геотаргетинга WordPress я использую популярную бесплатную тему Zerif Lite . Вот как она выглядит сразу после установки:

Я хочу отображать индивидуальное приветствие вместо типового, включенного в тему Zerif Lite . Для этого я воспользуюсь собственным виджетом.

Сначала внесем несколько изменений в используемую тему:

  • Заменим изображение заголовка;
  • Удалим зеленую кнопку;
  • Заменим текст красной кнопки.

Теперь создадим собственный виджет для заголовка, используя Widgets on Pages . Перейдите на вкладку Widgets on Pages > Turbo Sidebars и нажмите Add New Turbo Sidebar .

Дайте виджету имя (в моем случае это будет «Header Widget » ) и нажмите Update . Затем скопируйте предоставленный шорткод.

В файлах темы добавьте шорткод там, где вы хотите отобразить альтернативный текст. Я хочу отобразить текст в заголовке, поэтому в теме Zerif Lite отредактирую файл big_title.php и заменю строку:

Zerif_big_title_text_trigger(); на приведенную ниже строку: widgets_on_template("header_widget");

Нажмите Update File , чтобы сохранить изменения, внесенные в настройки геотаргетинга.

Шаг 3: Добавляем шорткод в виджет для отображения индивидуального изображения в приветствии

Перейдите в Custom Content > Content by Country и нажмите на опцию «Enable Content by Country Feature » («Разрешить контент по странам »). По умолчанию этот параметр отключен.

Затем перейдите в Appearance> Widgets . Здесь вы найдете новый виджет «header_widget ». А также увидите новый Shortcode Widget , указанный в разделе доступных виджетов.

Перетащите Shortcode Widget на header_widget . В области контента вставьте шорткоды для виджета Custom Content by Country . Вот мой пример:

Brr! It’s cold outside!
Let’s warm up your noggin! Looking for a great hat?
Sale on now!

Первый шорткод отобразит «Brr! It’s cold outside! Let’s warm up your noggin! » посетителям из Австралии, поскольку для «show » установлено значение «y » (yes ).

Второй шорткод отобразит «Looking for a great hat? Sale on now! » всем посетителям, которые находятся не в Австралии, так как я установил для «show » значение «n » (no ).

Страница содержит второе приветственное сообщение для посетителей не из Австралии, потому что я нахожусь в Канаде. Если у вас есть VPN , включите его и укажите свое местоположение где-нибудь в Австралии:

Выглядит хорошо! Но очевидно, что нужно какое-то стилевое оформление геотаргетинга для сайта.

Шаг 4: Добавляем стили CSS

Оформление, которое добавляет плагин Custom Content by Country , довольно незатейливое. Откройте файл CSS основной или дочерней темы и добавьте следующие строки для простого оформления:

Cbc_content { color:#ffffff; font-size:80px; }

Теперь обновите пользовательский интерфейс, чтобы увидеть, как он выглядит:

Это очень простой пример того, как геотаргетинг контента, представленного на WordPress-сайте , может работать с персонализированным контентом. А также того как отображать на сайте контент для посетителей из разных стран.

Геотаргетинг контента с помощью плагинов

Доступно множество других плагинов для добавления функции геотаргетинга в WordPress :

Geolify (премиум ): это платное SaaS-решение позволяет применить геотаргетинг ко всему содержимому сайта, включая перенаправления, ссылки, контент, всплывающие окна, панели уведомлений, изображения, JavaScript .
GEO my WordPress (бесплатный ): этот плагин работает с постами, страницами и настраиваемыми типами записей. Он также работает с BuddyPress , поэтому участники могут добавить свое местоположение.
WP Geo (бесплатный ): позволяет установить физическое местоположение пользователя и вставить эту информацию с помощью карты Google .
GEO my WP (премиум ): плагин предлагает расширенные возможности для геотаргетинга контента, включая опции для пользовательских типов и BuddyPress , автоматическое заполнение адресов Google Places , ближайшие места и текущее местоположение пользователя.
GeoIP Detection (бесплатный ): плагин предоставляет информацию о географическом положении, определяемую по IP-адресу , которую затем можно использовать в темах. Предназначен для разработчиков, которые затем могут применить эту информацию.
GeoTargeting Lite (бесплатный ): плагин геотаргетинга использует шорткоды для отображения контента пользователям на основе их географического местоположения.
Geotargeting WP (премиум ): этот API-сервис позволяет разработчикам запускать геотаргетинг контента для любой части сайта, включая записи, страницы, пользовательские типы сообщений, такие как продукты WooCommerce , виджеты, меню и файлы шаблонов.

Захотелось мне как-то на одном из сайтов показывать рекламу только для пользователей из определенной страны, так как другим посетителям смотреть ее просто бессмысленно. Зачем лишний раз их раздражать или загромождать пространство веб-страницы ненужной информацией. Это, в принципе, может касаться не только рекламы, но и обычного контента (виджетов, информационных блоков и т.п.). Казалось бы, задача достаточно тривиальная, однако реализация ее отнюдь таковой не является. Это история поиска, рассказ о находках и размышления о возможных решениях.

В общем, я принялся искать плагины, связанные как-то с geo targeting или geo location, или с чем-то подобным. Все решения можно разделить на такие условные группы:

  • платные модули с 30 бесплатными днями, с подписками по доллару в месяц или ценами около $49.99;
  • плагины с официального сайта WordPress, что не обновлялись более двух лет, которые скачаны раз 100-200 или с сомнительными оценками.
  • в третью группу я бы определил компромиссные решения, из которых можно хоть что-то выбрать.

Итого я остановился на трех вариантах.

Content By Location

Плагин староват, поддерживает версии WordPress до 3.3.2, но я все же решил его попробовать. Забегая наперед, скажу, что запуск на WP 3.1 и WP 3.4.2 не принесли результата. Я пытался вывести информацию как в виджете, так и в PHP коде шаблона – тщетно. Возможно, нужно покопаться в модуле чуть более детально. Задумка то у него очень даже неплохая.

Модуль Content By Location поддерживает работу сразу с тремя геолокационными сервисами: smart-ip.net, hostip.info, maxmind.com.

После установки вам просто нужно будет выбрать один из их. Затем для отображения текста используется шорткод:

Your content

Здесь вместо «country code» ставите сокращение страны по формату SO_3166-1_alpha-2 (nl, uk, us, ru, fr и т.п.). Собственно, плюсом является поддержка сразу нескольких сервисов, если вдруг кто-то из них откажется работать. Я тестировал первые два, третий это бесплатная и локальная база стран, которую нужно будет скачать. Она используется во многих решениях. Так что, если есть время, поэкспериментируйте.

IP2Location Tags

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

Все они доступны, но вот база IP и стран – другой вопрос. Есть LITE версия (бесплатная) и коммерческая. Кроме того, сложности добавляет то, что вам придется как-то эту базу подключить, то ли указав пути, то ли подправив БД. Без базовых навыков разработки не разобраться.

Из позитивного можно назвать очень легкое использование модуля после подключения. Например следующий код:

Your IP is {ip:ipAddress} You are came from {ip:countryName}, {ip:regionName}, {ip:cityName}

… отобразит информацию о вашем адресе, стране, регионе и городе. Там подобных переменных очень много. Можно легко создавать функциональные сайты по типу определителей IP адресов.

Скажу сразу, это решение не бесплатное, однако весьма эффективное. Со стоимостью не все понятно – на сайте указано $25.00 или 5WMZ (то ли опечатка, то ли за 5 вмз можно купить).

Плюсов здесь хватает:

  • быстрая установка и множество настроек;
  • база IP обновляется автоматически бесплатно без регулярных платежей;
  • кроме решение задачи геотаргетинга с отображением контента для разных стран, позволяет выполнять ряд других функций (перенаправление, флаги);
  • поддержка более-менее актуальных версий WP до 3.8.
  • код плагина не закодирован, можете изучать и править.

По описанию смахивает на то, что автор использует бесплатную (LITE) базу IP сервиса MaxMind GeoLite, о которой я говорил выше. Ее вполне хватает, к тому же она автоматически обновляется. Вообще за указанный набор функций считаю цену в 25 долларов более чем приемлемой. Зарубежные аналоги подороже будут. Конечно, если вы опытные веб-разработчик, то сами можете попытаться все реализовать.

Геотаргетинг – это предоставление конкретного контента посетителям сайтов на основе их географического местоположения, обычно страны или города, определение которых происходит по их IP-адресу .

Эта техника существует уже так давно, что стала повсеместной. Google предоставляет результаты поиска, адаптированные к вашему местоположению, Amazon предлагает персонализированные домашние страницы с рекомендуемыми продуктами, а eBay — отображает местную валюту.

Более свежим примером геотаргетинга является сам WordPress . Актуальный релиз 4.8 включает в себя новый виджет панели инструментов, который отображает предстоящие события, адаптированные к вашему географическому положению:

Использование Google Analytics для определения местоположения посетителей

Вы можете использовать Google Analytics , чтобы узнать больше о своих посетителях и том, откуда они. Для этого войдите в аналитический сервис и перейдите на вкладку Аудитория> Демография> Гео> Местоположение :


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

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

  • Добавить на сайт немецкий перевод;
  • Выделить больше времени на продвижение контента среди американской аудитории (например, организовать рекламные акции к выходным дням в США );
  • Сообщить немецким посетителям, что вы собираете их информацию в соответствии с законом Евросоюза о файлах cookie ;
  • Установить связь с посетителями, приветствуя их соответствующе местоположению (например, скажите «G’Day! » австралийским посетителям );
  • Продемонстрировать отзывы клиентов с той же географической местности, откуда пользователь;
  • Оповестить посетителей из США, Канады, Австралии, Великобритании и Германии о том, что вы осуществляете доставку до их местонахождения.

Использование геотаргетинга в WordPress

Рассмотрим простой пример использования геотаргетинга для сайта: отображение приветственных сообщений посетителям из разных стран.

Отображение приветственного сообщения

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

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

Шаг 1: Устанавливаем плагины

Для реализации этого примера мы будем использовать несколько бесплатных плагинов, доступных в WordPress Plugin Directory :

  • Custom Content by Country ;
  • Widgets on Pages ;
  • Shortcode Widget .

Custom Content by Country – это простой плагин, который применяет шорткоды для отображения контента в зависимости от местоположения пользователей. Мы будем использовать его для геотаргетинга контента. Начнем с того, что будем использовать его для отображения альтернативного приветствия.

Я хочу отобразить альтернативное приветственное сообщение над заголовком темы, поэтому использую плагин Widgets on Pages для добавления виджета в заголовок.

Плагин Shortcode Widget позволит легко использовать шорткоды на сайте, без необходимости добавлять фильтр в файл functions.php или создавать дочернюю тему.

Шаг 2: Создаем специализированный виджет

В этом примере геотаргетинга WordPress я использую популярную бесплатную тему Zerif Lite . Вот как она выглядит сразу после установки:


Я хочу отображать индивидуальное приветствие вместо типового, включенного в тему Zerif Lite . Для этого я воспользуюсь собственным виджетом.

Сначала внесем несколько изменений в используемую тему:

  • Заменим изображение заголовка;
  • Удалим зеленую кнопку;
  • Заменим текст красной кнопки.

Теперь создадим собственный виджет для заголовка, используя Widgets on Pages . Перейдите на вкладку Widgets on Pages > Turbo Sidebars и нажмите Add New Turbo Sidebar .

Дайте виджету имя (в моем случае это будет «Header Widget » ) и нажмите Update . Затем скопируйте предоставленный шорткод.

В файлах темы добавьте шорткод там, где вы хотите отобразить альтернативный текст. Я хочу отобразить текст в заголовке, поэтому в теме Zerif Lite отредактирую файл big_title.php и заменю строку:

zerif_big_title_text_trigger(); на приведенную ниже строку: widgets_on_template("header_widget");

Нажмите Update File , чтобы сохранить изменения, внесенные в настройки геотаргетинга.

Шаг 3: Добавляем шорткод в виджет для отображения индивидуального изображения в приветствии

Перейдите в Custom Content > Content by Country и нажмите на опцию «Enable Content by Country Feature » («Разрешить контент по странам »). По умолчанию этот параметр отключен.

Затем перейдите в Appearance> Widgets . Здесь вы найдете новый виджет «header_widget ». А также увидите новый Shortcode Widget , указанный в разделе доступных виджетов.

Перетащите Shortcode Widget на header_widget . В области контента вставьте шорткоды для виджета Custom Content by Country . Вот мой пример:

Brr! It’s cold outside!
Let’s warm up your noggin! Looking for a great hat?
Sale on now!


Первый шорткод отобразит «Brr! It’s cold outside! Let’s warm up your noggin! » посетителям из Австралии, поскольку для «show » установлено значение «y » (yes ).

Второй шорткод отобразит «Looking for a great hat? Sale on now! » всем посетителям, которые находятся не в Австралии, так как я установил для «show » значение «n » (no ).


Страница содержит второе приветственное сообщение для посетителей не из Австралии, потому что я нахожусь в Канаде. Если у вас есть VPN , включите его и укажите свое местоположение где-нибудь в Австралии:


Выглядит хорошо! Но очевидно, что нужно какое-то стилевое оформление геотаргетинга для сайта.

Шаг 4: Добавляем стили CSS

Оформление, которое добавляет плагин Custom Content by Country , довольно незатейливое. Откройте файл CSS основной или дочерней темы и добавьте следующие строки для простого оформления:

Cbc_content { color:#ffffff; font-size:80px; }

Теперь обновите пользовательский интерфейс, чтобы увидеть, как он выглядит:


Это очень простой пример того, как геотаргетинг контента, представленного на WordPress-сайте , может работать с персонализированным контентом. А также того как отображать на сайте контент для посетителей из разных стран.

Геотаргетинг контента с помощью плагинов

Доступно множество других плагинов для добавления функции геотаргетинга в WordPress :

Geolify (премиум ): это платное SaaS-решение позволяет применить геотаргетинг ко всему содержимому сайта, включая перенаправления, ссылки, контент, всплывающие окна, панели уведомлений, изображения, JavaScript .
GEO my WordPress (бесплатный ): этот плагин работает с постами, страницами и настраиваемыми типами записей. Он также работает с BuddyPress , поэтому участники могут добавить свое местоположение.
WP Geo (бесплатный ): позволяет установить физическое местоположение пользователя и вставить эту информацию с помощью карты Google .
GEO my WP (премиум ): плагин предлагает расширенные возможности для геотаргетинга контента, включая опции для пользовательских типов и BuddyPress , автоматическое заполнение адресов Google Places , ближайшие места и текущее местоположение пользователя.
GeoIP Detection (бесплатный ): плагин предоставляет информацию о географическом положении, определяемую по IP-адресу , которую затем можно использовать в темах. Предназначен для разработчиков, которые затем могут применить эту информацию.
GeoTargeting Lite (бесплатный ): плагин геотаргетинга использует шорткоды для отображения контента пользователям на основе их географического местоположения.
Geotargeting WP (премиум ): этот API-сервис позволяет разработчикам запускать геотаргетинг контента для любой части сайта, включая записи, страницы, пользовательские типы сообщений, такие как продукты WooCommerce , виджеты, меню и файлы шаблонов.

25 мая 2015 в 14:23

Геотаргетинг по городам (регионам, странам) для WordPress

  • PHP ,
  • WordPress

Причины создания

Недавно попросили сделать геотаргетинг по городам для сайта на wordpress. Пересмотрев существующие геотаргетинг-плагины (в том числе платные), не нашёл не одного работающего с городами (только страны). Поэтому решил сделать свой, используя какую-нибудь существующую базу для определения местоположения по IP-адресу. Сначала начал с разработки функции в шаблоне, но потом решил создать плагин и выложить на github, так как думаю, что он может пригодиться кому-нибудь ещё.

Выбор базы

Первым делом нужно было выбрать базу. И это, наверное, одна из самых сложных проблем. В процессе разработки пробовал много вариантов, даже делал CURL-запросы на сайты, определяющие местоположение по ip, и парсил их. Но все они были не точны, к примеру, один Московский IP определяло как Москву, другой - просто Россия. Также нужно было, чтобы плагин работал не только с Россией, но и с Беларусью и Украиной. Перепробовав кучу множество баз, я остановился на Sypex Geo. У них есть условно-платная и бесплатная версии баз. Условно-платная использует REST API и возвращает данные в виде xml, json и jsonp. Бесплатную можно скачать в виде файла, также можно скачать класс для работы с ней. Условно-платная версия более точная, но бесплатно предоставляет только 10 000 запросов. Бесплатная версия тоже достаточно точна и обновляется на сайте.

Функционал

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

При разработке плагина я решил сделать выбор между локальной базой и REST API. В будущем планирую сделать кнопку автоматического обновления базы.

Также из базы можно вернуть русские и английские имена городов (стран, регионов). В связи с этим сделал выбор языка.
Ещё столкнулся с тем, что нужно включить список несколько городов или наоборот исключить какой-то.

Настройка плагина в админке

Реализация

Так как с Wordpress я работаю редко (как и со всеми CMS) и написанием плагинов для него никогда не занимался, начал читать, как их писать и смотреть, как устроены существующие. Идею реализации взял с существующих гео-плагинов. Ещё долго думал писать функционально или объектно-ориентированно. Решил функционально, так как плагин не большой.

Вкратце опишу его работу.

При активации плагина инициируем две опции: тип бд и язык на котором будем вводить названия.

Register_activation_hook(__FILE__, "wp_sypexgeo_activation"); function wp_sypexgeo_activation() { update_option("sgeo_language", "en"); update_option("sgeo_dbase", "loc"); }
Далее add_filter("the_content", "geotargeting_filter"); add_filter("the_content_rss", "geotargeting_filter"); add_filter("the_excerpt", "geotargeting_filter"); add_filter("the_excerpt_rss", "geotargeting_filter"); вызывают функцию

geotargeting_filter

function geotargeting_filter($s) { //parse Country preg_match_all("#\[" . GEOTARGETING_COUNTY . "\s*(in|out)=([^\]]+)\](.*?)\#isu", $s, $country); //parse Country preg_match_all("#\[" . GEOTARGETING_REGION . "\s*(in|out)=([^\]]+)\](.*?)\#isu", $s, $region); //parse Country preg_match_all("#\[" . GEOTARGETING_CITY . "\s*(in|out)=([^\]]+)\](.*?)\#isu", $s, $city); if (empty($country) && empty($region) && empty($city)) { return $s; } $base_type = get_option("sgeo_dbase"); if ($base_type == "loc") { $ipdata = getLocInfo(); } elseif ($base_type == "rm") { $ipdata = getRemInfo(); } if (!empty($country)) { foreach ($country as $i => $raw) { $type = strtolower($country[$i]); $countries = strtolower(trim(str_replace(array("\"", """, "\n", "\r", "\t", " "), "", $country[$i]))); $content = $country[$i]; $countries = explode(",", $countries); $replacement = ""; if ((($type == "in") && in_array($ipdata["country"], $countries)) || (($type == "out") && !in_array($ipdata["country"], $countries))) { $replacement = $content; } $s = str_replace($raw, $replacement, $s); } } if (!empty($region)) { foreach ($region as $i => $raw) { $type = strtolower($region[$i]); $regions = strtolower(trim(str_replace(array("\"", """, "\n", "\r", "\t"), "", $region[$i]))); $content = $region[$i]; $regions = explode(",", $regions); $replacement = ""; if ((($type == "in") && in_array($ipdata["region"], $regions)) || (($type == "out") && !in_array($ipdata["region"], $regions))) { $replacement = $content; } $s = str_replace($raw, $replacement, $s); } } if (!empty($city)) { foreach ($city as $i => $raw) { $type = strtolower($city[$i]); $cities = strtolower(trim(str_replace(array("\"", """, "\n", "\r", "\t", " "), "", $city[$i]))); $content = $city[$i]; $cities = explode(",", $cities); $replacement = ""; if ((($type == "in") && in_array($ipdata["city"], $cities)) || (($type == "out") && !in_array($ipdata["city"], $cities))) { $replacement = $content; } $s = str_replace($raw, $replacement, $s); } } return $s; }

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

Использование

Для указания списка стран: Привет Belarus,Russia!
Для указания списка регионов: Привет Moscow Region!
Для указания списка городов: Привет Минск,Брест!
Если вы хотите выбрать страны (регионы, города) за исключением указанных, используйте «out»: Привет всем, кроме Minsk,Brest!

Пример использования в шаблоне:

Добро пожаловать в WordPress. Это ваша первая запись. Отредактируйте или удалите её, затем пишите! Наши контакты: +375295552255+375475552255

Заключение

Надеюсь, мой плагин кому-нибудь пригодится. Если есть вопросы или предложение - пишите. Также, если кто-то считает, что нужно использовать другую базу (геосервис или ещё что-нибудь), предлагайте, я добавлю или можете добавить сами.






2024 © gtavrl.ru.