Трохи технічних деталей: як ми реалізували нашу версію зіставлення шорткодів

Автор:

у

,

How-We-Made-Our-Version-Of-Shortcode-Mapping-Happen-2У попередній статті ми обговорювали основи зіставлення шорткодів і те, як ви можете отримати доступ до його чудових переваг. Ми вирішили виділити статтю про версію Shortcode Mapping для Page Builder Sandwich в окремий матеріал, оскільки наступний опис може бути дещо більш технічним.

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

Автоматизований процес

Щоб вирішити, які плагіни включити до мапера шорткодів, ми створили автоматизований скрипт, який збирає найкращі плагіни в каталозі плагінів WordPress на основі таких критеріїв:

  • Серед 1 000 популярних, з найвищим рейтингом і оновлених плагінів, з щонайменше 4 000 активних встановлень,
  • З щонайменше 4 000 активних встановлень,
  • З щонайменше 20 оцінками, та;
  • З середнім рейтингом не менше 3 зірок

Ми щодня виконуємо цей запит до каталогу плагінів WordPress. Ці фільтри гарантують, що ми отримуємо список якісних плагінів, якими користується багато людей. На момент написання цього матеріалу ці критерії охоплювали 800 плагінів. Це багато. Дуже багато.

Деякі з найпопулярніших плагінів, виявлених для зіставлення шорткодів.
Деякі з найпопулярніших плагінів, виявлених для зіставлення шорткодів.

Потім ми запускаємо серію автоматичних перевірок вихідного коду кожного плагіна, щоб дізнатися, чи містить він якісь шорткоди, після чого намагаємося знайти всі ці шорткоди разом із усіма їхніми атрибутами. Опрацювання даних дало понад 2 000 шорткодів. Подвійне «ого». Виявлені шорткоди потім вносяться до бази даних зіставлення шорткодів для ручної перевірки.

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

Ручний процес

Це, мабуть, найважча частина всієї системи зіставлення. Код плагінів буває різних форм і розмірів, тому не всі шорткоди автоматично виявляються нашими скриптами. Хоча WordPress Codex рекомендує використовувати функцію `shortcode_atts` для фільтрації атрибутів шорткоду, це лише рекомендація, і не всі її дотримуються. Також немає надійного способу перевірити внутрішню структуру шорткоду, коли плагін встановлено.

Тому, щоб переконатися, що ми правильно зібрали всі шорткоди та їхні атрибути, ми створили інтерфейсну панель для редагування шорткодів та атрибутів, розроблену за допомогою AngularJS і Bootstrap.

Інтерфейс на Bootstrap & AngularJS для налагодження всіх зіставлених шорткодів.
Інтерфейс на Bootstrap & AngularJS для налагодження всіх зіставлених шорткодів.

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

Хоча це надзвичайно клопітно, автоматизований процес має й світлі сторони:

  • За нашою ранньою статистикою, лише близько 1 з кожних 2 плагінів має шорткоди.
  • Половина виявлених шорткодів не мають атрибутів (але частина з цього може бути хибними спрацьовуваннями)
  • Отримуючи лише якісні плагіни, ми з великою ймовірністю маємо для них документацію щодо шорткодів

Лише після того, як усі шорткоди плагіна буде перевірено, сервер починає передавати зіставлення шорткодів цього плагіна користувачам.

Виклик Rest API

Останній елемент мозаїки — це сам плагін. Концепція тут проста: з’ясувати, які плагіни активні, яку тему використовує сайт і які шорткоди доступні, а потім запитати базу даних зіставлення шорткодів, чи є для них зіставлення. Для цього ми створили власний кінцевий пункт WP REST API, до якого звертаються всі клієнти, щоб отримати останні зіставлення шорткодів.

Майбутнє: Краудсорсинг

Ручна перевірка кожного плагіна вимагає багато часу та зусиль. Щойно платформа зіставлення шорткодів стане стабільною, ми плануємо відкрити процес зіставлення для всіх. Це означає, що кожен зможе допомогти додавати шорткоди.

Ви можете подумати: «Навіщо мені допомагати зіставляти шорткоди? Яка мені з цього користь?» Що ж, на думку спадає кілька причин, чому люди захочуть допомогти:

  1. Якщо ви створили плагін, а ми ще не виявили його через зазначені вище критерії (і він є в каталозі плагінів WordPress), ви можете додати зіставлення власноруч. Ваш плагін отримає повну підтримку в PBS!
  2. Оскільки в автоматизованому процесі ми працюватимемо лише з тими, що є в каталозі плагінів WordPress, автори преміум-плагінів і тем не будуть включені. Тож якщо у вас такий є, ви також зможете додати власні зіставлення шорткодів для них.
  3. А для тих, хто не створює плагіни, ми можемо винагородити допомогу. Щоб зробити зіставлення шорткодів привабливим завданням, ми можемо винагороджувати охочих помічників персональною ліцензією або оновленням до преміум-ліцензії PBS!

Підпишіться на нашу розсилку

Функціонал зіставлення шорткодів стане доступним для наших клієнтів орієнтовно 12 серпня  15 серпня  16 серпня 2016 року. До цього часу не всі шорткоди будуть зіставлені (за нашими оцінками, можливо, 100 плагінів), але процес зіставлення триватиме безперервно, і клієнти отримуватимуть їх одразу після появи нових.

Підпишіться на нашу розсилку, щоб дізнаватися новини про зіставлення шорткодів, дату виходу та відкриття процесу зіставлення для спільноти!