В предишната статия обсъдихме основите на съпоставянето на кратки кодове и как можете да се възползвате от чудесните му предимства. Решихме да разделим статията, представяща версията на Page Builder Sandwich за съпоставяне на кратки кодове (Shortcode Mapping), тъй като следващият текст може да стане малко по-технически.
По-долу са описани по-подробно вътрешните механизми на нашата функция за съпоставяне на кратки кодове и как успяхме да я накараме да работи.
Автоматизиран процес
За да решим кои разширения да включим в инструмента за съпоставяне на кратки кодове, създадохме автоматизиран скрипт, който събира най-популярните разширения в директорията с разширения на WordPress въз основа на следните критерии:
- Сред 1000-те популярни, най-високо оценени и обновени разширения, с поне 4000 активни инсталации,
- С поне 4000 активни инсталации,
- С поне 20 оценки и;
- С поне 3 звезди средна оценка
Изпълняваме тази заявка ежедневно към директорията с разширения на WordPress. Тези филтри гарантират, че получаваме списък с качествени разширения, използвани от много хора. Към момента на написването на тази статия, тези критерии доведоха до 800 разширения. Това са много. Наистина много.

След това извършваме поредица от автоматизирани проверки на изходния код на всяко разширение, за да установим дали съдържа кратки кодове, и се опитваме да открием всички тези кратки кодове, включително всички техни атрибути. При обработката на данните това доведе до над 2000 кратки кода. Двойно уау. Откритите кратки кодове след това се въвеждат в базата данни за съпоставяне на кратки кодове за ръчна проверка.
В края на този процес разполагаме с огромен списък от разширения и техните потенциални кратки кодове. Сега остава само тези данни да се изчистят, за да се уверим, че всичко е правилно.
Ръчен процес
Това вероятно е най-трудната част от цялата система за съпоставяне. Кодът на разширенията се среща в различни форми и размери, и не всички кратки кодове се откриват автоматично от нашите скриптове. Въпреки че кодексът на WordPress посочва да се използва функцията `shortcode_atts` за филтриране на атрибутите на кратък код, това е само препоръка и не всеки я спазва. Също така няма сигурен начин да се проверят вътрешностите на даден кратък код, когато е инсталирано разширение.
За да сме сигурни, че откриваме правилно всички кратки кодове и техните атрибути, създадохме потребителски интерфейс, предназначен за редактиране на кратки кодове и атрибути, изграден с AngularJS и Bootstrap.

Трябва ръчно да преминем през всяко едно разширение, да проверим документацията му за кратки кодове и да се уверим, че всички данни, с които разполагаме, са правилни.
Въпреки че това е изключително трудоемко и досадно, има и положителни страни на наличието на автоматизиран процес:
- Според ранните ни статистически данни само около 1 на всеки 2 разширения съдържа кратки кодове.
- Половината от откритите кратки кодове нямат атрибути (но част от тях може да са фалшиво положителни)
- Като избираме само качествени разширения, най-вероятно те разполагат с документация за кратките кодове
Едва когато всички кратки кодове на дадено разширение бъдат проверени, сървърът започва да разпространява съпоставянията на кратки кодове за това разширение към потребителите.
REST API заявка
Последното парче от пъзела е самото разширение. Концепцията тук е проста: установява се кои разширения са активни, коя тема използва сайтът и кои кратки кодове са налични, след което се проверява в базата данни за съпоставяне на кратки кодове дали има налични съпоставяния. За целта създадохме персонализирана крайна точка на WP REST API, към която всички клиенти изпращат заявки, за да получат най-новите съпоставяния на кратки кодове.
Бъдещето: Краудсорсинг
Ръчната проверка на всяко разширение изисква много време и усилия. След като платформата за съпоставяне на кратки кодове стане стабилна, планираме да отворим съпоставянето на кратки кодове за всички. Това означава, че всеки ще може да помогне при добавянето на кратки кодове.
Може би си мислите: „Защо да помагам за съпоставянето на кратки кодове? Каква е ползата за мен?“ Е, има няколко причини, поради които хората биха искали да помогнат:
- Ако сте създали разширение и все още не сме го открили поради горепосочените критерии (а то се намира в директорията с разширения на WordPress), можете сами да добавите съпоставянията. Вашето разширение ще бъде напълно поддържано от PBS!
- Тъй като при автоматизирания процес ще работим само с тези в директорията с разширения на WordPress, авторите на платени разширения и теми няма да бъдат включени. Така че, ако имате такова, можете също да добавите вашите съпоставяния на кратки кодове за тях.
- А за тези, които не създават разширения, можем да възнаградим помагащите. За да направим съпоставянето на кратки кодове привлекателно начинание, можем да наградим отзивчивите помощници с личен лиценз или надграждане до премиум лиценз за PBS!
Абонирайте се за нашия бюлетин
Функционалността за съпоставяне на кратки кодове ще бъде достъпна за нашите клиенти ориентировъчно на 12 август 15 август 16 август 2016 г. Не всички кратки кодове ще бъдат съпоставени дотогава (нашата прогноза е може би 100 разширения), но съпоставянето ще продължи непрекъснато и клиентите ще ги получават веднага след като се появят нови.
Абонирайте се за нашия бюлетин, за да получавате новини относно съпоставянето на кратки кодове, кога ще го пуснем и кога ще го отворим за широката публика!