Unde lucrurile devin puțin tehnice: Cum am creat propria noastră versiune de mapare a shortcode-urilor

Scris de

în

,

How-We-Made-Our-Version-Of-Shortcode-Mapping-Happen-2În articolul anterior, am discutat despre elementele de bază ale mapării de shortcode-uri și despre modul în care puteți beneficia de avantajele acesteia. Am decis să împărțim articolul dedicat versiunii Page Builder Sandwich de mapare a shortcode-urilor, deoarece textul următor ar putea deveni puțin mai tehnic.

Mai jos găsiți descrieri mai detaliate ale funcționării interne a funcționalității noastre de mapare a shortcode-urilor și modul în care am făcut-o să funcționeze.

Un proces automatizat

Pentru a decide ce pluginuri să includem în mapperul de shortcode-uri, am creat un script automatizat care adună cele mai bune pluginuri din directorul de pluginuri WordPress pe baza următoarelor criterii:

  • Dintre cele 1.000 de pluginuri populare, cel mai bine cotate și actualizate, cu cel puțin 4.000 de instalări active,
  • Cu cel puțin 4.000 de instalări active,
  • Cu cel puțin 20 de recenzii; și
  • Cu o evaluare medie de cel puțin 3 stele

Rulăm această interogare zilnic în directorul de pluginuri WordPress. Aceste filtre ne asigură că obținem o listă de pluginuri de bună calitate, utilizate de mulți oameni. În momentul redactării acestui text, aceste criterii au rezultat în 800 de pluginuri. Înseamnă foarte mult. Chiar foarte mult.

Some of the most popular plugins detected for shortcode mapping.
Câteva dintre cele mai populare pluginuri detectate pentru maparea shortcode-urilor.

Executăm apoi o serie de verificări automate asupra codului sursă al fiecărui plugin pentru a afla dacă acesta conține shortcode-uri, iar apoi încercăm să găsim toate aceste shortcode-uri, inclusiv toate atributele lor. Prelucrând datele, au rezultat peste 2.000 de shortcode-uri. O realizare dublă. Shortcode-urile detectate sunt apoi introduse în baza de date de mapare a shortcode-urilor pentru inspectare manuală.

La finalul acestui proces, obținem o listă uriașă de pluginuri și posibilele lor shortcode-uri. Acum este doar o chestiune de curățare a acestor date pentru a ne asigura că totul este corect.

Un proces manual

Aceasta este probabil cea mai dificilă parte a întregului sistem de mapare. Codul pluginurilor vine în diferite forme și dimensiuni, iar nu toate shortcode-urile sunt detectate automat de scripturile noastre. Chiar dacă WordPress Codex recomandă utilizarea funcției `shortcode_atts` pentru filtrarea atributelor unui shortcode, aceasta este doar o recomandare și nu toată lumea o urmează. De asemenea, nu există o modalitate infailibilă de a verifica interiorul unui shortcode atunci când un plugin este instalat.

Pentru a ne asigura că identificăm corect toate shortcode-urile și atributele acestora, am creat o zonă de interfață (front-end) dedicată editării shortcode-urilor și a atributelor, dezvoltată folosind AngularJS și Bootstrap.

Bootstrap & AngularJS interface for fixing up all the mapped shortcodes.
Interfață Bootstrap & AngularJS pentru corectarea tuturor shortcode-urilor mapate.

Trebuie să parcurgem manual fiecare plugin în parte, să îi verificăm documentația referitoare la shortcode-uri și să ne asigurăm că toate datele pe care le avem sunt corecte.

Deși este o muncă extrem de migăloasă, există și părți bune în a avea un proces automatizat:

  • Conform statisticilor noastre inițiale, doar aproximativ 1 din fiecare 2 pluginuri conține shortcode-uri.
  • Jumătate dintre shortcode-urile detectate nu au atribute (dar o parte din acestea pot fi rezultate fals-pozitive)
  • Selectând doar pluginuri de bună calitate, este foarte probabil ca acestea să aibă documentație pentru shortcode-uri

Abia după ce toate shortcode-urile unui plugin au fost verificate, serverul va începe să distribuie utilizatorilor mapările de shortcode-uri ale acelui plugin.

Un apel REST API

Ultima piesă a puzzle-ului este pluginul în sine. Conceptul de aici este simplu: identifică ce pluginuri sunt active, ce temă folosește site-ul și ce shortcode-uri sunt disponibile, apoi întreabă baza de date de mapare a shortcode-urilor dacă are mapări corespunzătoare. Pentru aceasta am creat un endpoint WP REST API personalizat, pe care toți clienții îl interoghează pentru a obține cele mai recente mapări de shortcode-uri.

Viitorul: Crowdsourcing

Verificarea manuală a fiecărui plugin necesită mult timp și efort. Odată ce platforma de mapare a shortcode-urilor este stabilă, plănuim să deschidem maparea pentru toată lumea. Aceasta înseamnă că oricine va putea da o mână de ajutor la adăugarea de shortcode-uri.

S-ar putea să vă întrebați: „de ce aș ajuta la maparea shortcode-urilor? Ce câștig eu din asta?” Ei bine, ne vin în minte câteva motive pentru care oamenii ar dori să ajute:

  1. Dacă ați creat un plugin și noi nu l-am preluat încă din cauza criteriilor de mai sus (și se află în directorul de pluginuri WordPress), atunci puteți adăuga mapările chiar dumneavoastră. Pluginul dumneavoastră va deveni complet compatibil cu PBS!
  2. Deoarece în procesul automatizat ne vom ocupa doar de cele din directorul de pluginuri WordPress, autorii de pluginuri și teme premium nu vor fi incluși. Așadar, dacă dețineți unul, puteți adăuga, de asemenea, mapările de shortcode-uri pentru acestea.
  3. Iar pentru cei care nu sunt creatori de pluginuri, îi putem recompensa pe cei care ajută. Pentru a face din maparea shortcode-urilor o activitate atractivă, îi putem recompensa pe cei dornici să ajute cu o licență personală sau cu un upgrade la o licență premium a PBS!

Abonați-vă la newsletterul nostru

Funcționalitatea de mapare a shortcode-urilor va fi disponibilă pentru clienții noștri, estimativ, pe data de 12 august  15 august  16 august 2016. Nu toate shortcode-urile vor fi mapate până atunci (estimarea noastră este de aproximativ 100 de pluginuri), dar maparea se va face continuu, iar clienții le vor primi de îndată ce vor fi lansate unele noi.

Abonați-vă la newsletterul nostru pentru a primi noutăți despre maparea shortcode-urilor, când o vom lansa și când vom deschide maparea shortcode-urilor pentru public!