Немного технических деталей: как мы реализовали свою версию сопоставления шорткодов

Написано

в

,

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

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

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

Чтобы решить, какие плагины включить в сопоставитель шорткодов, мы создали автоматизированный скрипт, который собирает лучшие плагины из каталога плагинов WordPress на основе следующих критериев:

  • Среди 1000 популярных, высоко оцененных и обновляемых плагинов, минимум с 4000 активных установок,
  • Минимум с 4000 активных установок,
  • Минимум с 20 оценками, и;
  • Со средней оценкой не менее 3 звезд

Мы запускаем этот запрос к каталогу плагинов WordPress ежедневно. Эти фильтры гарантируют, что мы получаем список качественных плагинов, которые используют многие люди. На момент написания статьи под эти критерии подошло 800 плагинов. Это много. Очень много.

Некоторые из самых популярных плагинов, обнаруженных для сопоставления шорткодов.
Некоторые из самых популярных плагинов, обнаруженных для сопоставления шорткодов.

Затем мы запускаем серию автоматических проверок исходного кода каждого плагина, чтобы выяснить, содержит ли он какие-либо шорткоды, после чего пытаемся найти все эти шорткоды, включая все их атрибуты. Анализ данных выявил более 2000 шорткодов. Невероятно! Обнаруженные шорткоды затем вносятся в базу данных сопоставления шорткодов для ручной проверки.

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

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

Это, пожалуй, самая сложная часть всей системы сопоставления. Код плагинов бывает самых разных форматов и объемов, и далеко не все шорткоды определяются нашими скриптами автоматически. Даже несмотря на то, что WordPress Codex рекомендует использовать функцию `shortcode_atts` для фильтрации атрибутов шорткода, это всего лишь рекомендация, и далеко не все ей следуют. Также нет гарантированного способа проверить внутреннюю структуру шорткода при установке плагина.

Чтобы убедиться, что мы правильно определили все шорткоды и их атрибуты, мы создали интерфейс, предназначенный для редактирования шорткодов и атрибутов, построенный с использованием AngularJS и Bootstrap.

Интерфейс Bootstrap и AngularJS для исправления всех сопоставленных шорткодов.
Интерфейс Bootstrap и AngularJS для исправления всех сопоставленных шорткодов.

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

Хотя это невероятно кропотливая и утомительная работа, у автоматизированного процесса есть и положительные стороны:

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

Только после того, как все шорткоды плагина проверены, сервер начинает распространять сопоставления шорткодов этого плагина пользователям.

Запрос к REST API

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

Будущее: краудсорсинг

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

Вы можете подумать: «Зачем мне помогать сопоставлять шорткоды? Какая мне от этого выгода?» Что ж, есть несколько причин, по которым люди могут захотеть помочь:

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

Подпишитесь на нашу рассылку

Функционал сопоставления шорткодов станет доступен для наших клиентов ориентировочно 12 августа  15 августа  16 августа 2016 года. К этому времени не все шорткоды будут сопоставлены (по нашей оценке, около 100 плагинов), но сопоставление будет проводиться непрерывно, и клиенты будут получать новые данные сразу по мере их выхода.

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