Геотаргетинг Sypex Geo за містами (регіонами, країнами) для WordPress, Ремесло з WordPress

Геотаргетинг Sypex Geo по містах (регіонах, країнах) для WordPress

Причини створення

Вибір бази

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

Функціонал

Як я вже писав, починав я робити не з плагіна, а з функції шаблону. Спочатку думав лише про умовно-платну версію бази, але кількість безкоштовних запитів закінчилася за день-два. Тому перейшов на безкоштовну, використовуючи готовий клас до роботи з файлом бази.

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

Також із бази можна повернути українські та англійські імена міст (країн, регіонів). У зв'язку з цим зробив вибір мови. Ще зіштовхнувся з тим, що потрібно включити список кілька міст або навпаки виключити якийсь.

регіонами
Налаштування плагіна в адмінці

Реалізація

Короткоопишу його роботу.

При активації плагіна ініціюємо дві опції: тип бд і мова якою будемо вводити назви.

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

Використання

Для вказівки списку країн:

Для вказівки списку регіонів:

Для вказівки списку міст:

Якщо ви бажаєте вибрати країни (регіони, міста) за винятком зазначених, використовуйте «out»:

Приклад використання у шаблоні:

Ласкаво просимо до WordPress. Це ваш перший запис. Відредагуйте або видаліть її, а потім пишіть! Наші контакти: [GeoCity in=Minsk]+375295552255[/GeoCity][GeoCity out=Minsk]+375475552255[/GeoCity]

Висновок

Сподіваюся, мій плагін комусь знадобиться. Якщо є питання чи пропозиція – пишіть. Також, якщо хтось вважає, що потрібно використовувати іншу базу (геосервіс або ще щось), пропонуйте, я додам або можете додати самі.