Pregătirea pentru WordPress 5.4: Schimbările temelor și dezvoltatorilor de plugin-uri pe care trebuie să le știe
Publicat: 2020-03-05Odată cu lansarea WordPress 5.4, este timpul ca dezvoltatorii de pluginuri și teme să înceapă să-și testeze extensiile și să se asigure că nu există probleme. Există, de asemenea, noi API-uri pentru funcțiile viitoare. Ieri, echipa de bază a lansat primul candidat pentru versiunea 5.4. Lansarea oficială este planificată pentru 31 martie.
Această postare va servi drept ghid rapid cu link-uri către câteva modificări importante de care dezvoltatorii trebuie să le țină cont în săptămânile următoare. Asigurați-vă că vă testați pluginurile și temele.
Dezvoltatori de teme

Există mai multe modificări împotriva cărora autorii temelor vor dori să le testeze. WordPress 5.4 are câteva caracteristici suplimentare ale temei. Are, de asemenea, câteva modificări legate de markup care ar putea rupe design-urile temei pe front-end și în editorul de blocuri. Din păcate, pentru autorii de teme care doresc să accepte mai multe versiuni de WordPress, unele dintre aceste modificări pot însemna un pic suplimentar de umflare CSS.
Pictograme sociale și blocuri de butoane
WordPress 5.4 introduce două blocuri noi: pictograme sociale și butoane. Blocul de pictograme sociale permite utilizatorilor să insereze pictograme/linkuri pentru până la 40 de rețele sociale diferite. Blocul de butoane permite utilizatorilor să grupeze mai multe blocuri de butoane împreună. Autorii de teme care lansează stiluri de editor de blocuri personalizate trebuie să țină cont de aceste noi blocuri pentru a se asigura că sunt afișate corect.
Creați presetări de gradient personalizate
Noul API Gradients permite autorilor de teme să definească presetări personalizate de gradient pe care utilizatorii le pot utiliza fie cu blocurile de grup, fie cu butoane. Autorii temelor vor trebui să facă niște treabă pentru a îmbunătăți problema oculară care este setările prestabilite de gradient. Cu puțină muncă, gradienții pot fi un instrument util la dispoziția utilizatorului. Autorii temei pot, de asemenea, să dezactiveze complet gradienții dacă preferă să nu le susțină.
Modificări de marcare și stil de editor de blocuri
Autorii de teme care au vizat în mod direct anumite clase de editor, vor trebui să își verifice stilurile de editor bloc. Multe clase cu prefix- editor- au fost modificate pentru a utiliza prefixul block-editor- . Elementul wrapper cu clasa .edit-post-layout__content a fost eliminat cu totul. Mai multe elemente wrapper au fost eliminate din blocuri și din componenta text îmbogățit. Umplutura încorporată din Core și marjele negative de pe blocuri au fost refactorizate, ceea ce este un plus binevenit. Poate că autorii de teme nu vor mai fi nevoiți să lupte împotriva mai multor selectori imbricați pentru a oferi un aspect de bază, funcțional, care se potrivește cu front-end-ul.
Aceste modificări au rupt deja câteva teme pe care le-am văzut. Există șanse mari ca mulți autori de teme să fie nevoiți să-și actualizeze stilurile editorului de blocuri.
Într-un moment în care Echipa de examinare a temelor solicită ca mai mulți autori de teme să trimită teme cu stiluri de editor personalizate, aceste tipuri de modificări ale claselor și ale marcajului nu sunt un spor de încredere. Dezvoltatorii de teme pot simți cu ușurință că duc o bătălie pierdută. Cu toate acestea, se lucrează înainte pentru a face marcajul editorului mai aproape de o potrivire unu-la-unu cu front-end. La un moment dat, autorii temelor nu pot decât să spere că nu vor mai fi nevoiți să se ocupe de aceste tipuri de modificări în timp ce sprijină utilizatorii din mai multe versiuni de WordPress. Deocamdată, se află într-o fază de tranziție oarecum dezordonată.
Markup calendar și modificări de clasă
Echipa de bază a schimbat marcajul funcției get_calendar() , care afectează și widgetul Calendar. Ieșirea calendarului nu mai are un element <tfoot> . În schimb, linkurile de luna anterioară și următoarea au fost mutate într-un element <nav> sub elementul <table> .
Ieșirea calendarului adaugă sau modifică, de asemenea, mai multe ID-uri și clase:
-
.wp-calendar-tableadăugat la elementul wrapper. -
.wp-calendar-navadăugat la elementul wrapper de navigare. -
.wp-calendar-nav-nextînlocuiește ID-ul#nextpe linkul de luna următoare. -
.wp-calendar-nav-prevînlocuiește ID-ul#prevde pe linkul lunii precedente.
Acestea sunt schimbări radicale. Orice CSS personalizat care vizează vechiul cod HTML sau ID-uri va trebui actualizat.

Blocați dezvoltatorii

Pentru dezvoltatorii de pluginuri care creează blocuri personalizate, WordPress 5.4 introduce câteva noi API-uri și instrumente pentru lucrul cu sistemul de blocuri.
Schela bloc
Dezvoltatorii au un nou pachet NPM pentru a crea rapid un plugin de bloc. Cu o singură comandă a npm init @wordpress/block <plugin-name> , scriptul va crea un director nou și va construi fișierele PHP, CSS și JavaScript adecvate necesare pentru construirea unui plugin bloc. Dezvoltatorii pot folosi instrumentele JavaScript moderne în mod implicit sau pot alege opțional să folosească o versiune ES5.
Intenția pachetului de schele bloc este ca autorii de pluginuri să construiască pluginuri cu un singur bloc care, în cele din urmă, își vor face drum în directorul oficial de blocuri.
API-ul Block Collections
API-ul Block Collections funcționează în mod similar cu categoriile. Cu toate acestea, ele se bazează pe spațiu de nume. Când un dezvoltator de plugin înregistrează o colecție personalizată, toate blocurile care partajează spațiul de nume al colecției vor apărea sub o secțiune personalizată în instrumentul de inserare a blocurilor. Aceasta pare a fi o modalitate mai inteligentă de a organiza blocurile. Cu siguranță va fi util pentru plugin-urile care creează biblioteci de blocuri, oferind o modalitate automată de a le grupa.
API-ul Block Variations
Noul API Block Variations permite dezvoltatorilor de blocuri să creeze în esență copii ale blocului cu o variație. Fiecare variație înregistrată va apărea ca un bloc separat în instrumentul de inserare a blocurilor din care utilizatorii pot alege.
Un bun exemplu al acestei caracteristici este noul bloc de pictograme sociale. Este un singur bloc cu 40 de variante pentru diferitele rețele sociale.
Alte modificări legate de dezvoltatori
Există câteva alte modificări de notă care traversează atât domeniul de dezvoltare a pluginurilor, cât și a temelor.
Noile cârlige pentru meniul de navigare
După ce au așteptat și așteptat și așteptat, dezvoltatorii primesc în sfârșit niște cârlige solicitate des pentru adăugarea de câmpuri personalizate la ecranul de administrare și personalizarea meniului de navigare. Cel puțin un bilet datează de 9 ani, dar este mai bine mai târziu decât niciodată. În trecut, dezvoltatorii trebuiau să folosească o clasă personalizată de walker pentru a face unele dintre personalizările necesare. Cu toate acestea, doar o singură clasă walker putea fi utilizată la un moment dat, ceea ce însemna că mai multe plugin-uri care au făcut modificări nu ar funcționa împreună.
Echipa de bază a adăugat noul cârlig wp_nav_menu_item_custom_fields pe ecranul de administrare a meniurilor de navigare, care apare înaintea butoanelor „mutare” pentru elementele individuale de meniu. Pentru paritate cu administratorul, elementele de meniu de navigare au un nou wp_nav_menu_item_custom_fields_customize_template în personalizat. Aceste cârlige vor permite dezvoltatorilor să adauge câmpuri de formular personalizate necesare pentru adăugarea de date personalizate la elementele meniului de navigare.
apply_shortcodes() Funcția Alias
WordPress 5.4 introduce o nouă apply_shortcodes() . Este un alias pentru funcția do_shortcode() . Noua funcție oferă un nume de funcție mai corect din punct de vedere semantic. În general, funcțiile cu prefixul do_ output sau un anumit tip de acțiune. Funcțiile cu prefixul apply_ se așteaptă ca datele să fie returnate.
Dacă creați o temă sau un plugin cu zone conștiente de coduri scurte, veți dori să treceți la noua funcție. Deși funcția do_shortcode() nu este în prezent marcată pentru depreciere, acesta ar trebui să fie scopul final.
