Preparazione per WordPress 5.4: modifiche a temi e plugin che gli sviluppatori dovrebbero conoscere
Pubblicato: 2020-03-05Con l'imminente rilascio di WordPress 5.4, è tempo che gli sviluppatori di plugin e temi inizino a testare le loro estensioni e ad assicurarsi che non ci siano problemi. Ci sono anche nuove API per le funzionalità imminenti. Ieri il core team ha rilasciato la prima release candidate per la 5.4. L'uscita ufficiale è prevista per il 31 marzo.
Questo post servirà da guida rapida con collegamenti a diverse importanti modifiche che gli sviluppatori devono tenere a mente nelle prossime settimane. Assicurati di testare i tuoi plugin e temi.
Sviluppatori di temi

Ci sono diverse modifiche che gli autori del tema vorranno testare. WordPress 5.4 ha alcune funzionalità aggiuntive del tema. Ha anche diverse modifiche relative al markup che potrebbero interrompere i design dei temi sul front-end e nell'editor dei blocchi. Sfortunatamente, per gli autori di temi che desiderano supportare più versioni di WordPress, alcune di queste modifiche potrebbero significare un po' di rigonfiamento CSS in più.
Icone sociali e blocchi di pulsanti
WordPress 5.4 introduce due nuovi blocchi: icone social e pulsanti. Il blocco icone social consente agli utenti di inserire icone/collegamenti per un massimo di 40 diversi social network. Il blocco pulsanti consente agli utenti di raggruppare più blocchi pulsanti insieme. Gli autori di temi che stanno implementando stili di editor di blocchi personalizzati devono tenere conto di questi nuovi blocchi per assicurarsi che vengano visualizzati correttamente.
Crea preimpostazioni gradiente personalizzate
La nuova API Gradients consente agli autori del tema di definire preimpostazioni di gradiente personalizzate che gli utenti possono utilizzare con il gruppo o i blocchi di pulsanti. Gli autori dei temi dovranno fare un po' di lavoro per migliorare il pugno nell'occhio che è il gradiente predefinito predefinito. Con un po' di lavoro, i gradienti possono essere uno strumento utile a disposizione dell'utente. Gli autori di temi possono anche disabilitare del tutto i gradienti se preferiscono non supportarli.
Modifica dell'editor di blocchi e modifiche di stile
Gli autori di temi che hanno preso di mira direttamente classi di editor specifiche, dovranno controllare i loro stili di editor di blocchi. Molte classi con il prefisso editor- sono state modificate per utilizzare il prefisso block-editor- . L'elemento wrapper con la .edit-post-layout__content è stato rimosso del tutto. Diversi elementi wrapper sono stati rimossi dai blocchi e dal componente RTF. Il riempimento integrato di Core e i margini negativi sui blocchi sono stati rifattorizzato, il che è un'aggiunta gradita. Forse gli autori del tema non dovranno più combattere contro più selettori nidificati per fornire un layout di base funzionante che corrisponda al front-end.
Questi cambiamenti hanno già rotto diversi temi che ho visto. Ci sono buone probabilità che molti autori di temi debbano aggiornare i loro stili di editor di blocchi.
In un momento in cui il team di revisione dei temi chiede a più autori di temi di inviare temi con stili di editor personalizzati, questi tipi di modifiche alle classi e al markup non sono una spinta alla fiducia. Gli sviluppatori di temi possono facilmente sentirsi come se stessero combattendo una battaglia persa. Tuttavia, il lavoro sta procedendo per rendere il markup dell'editor più vicino a una corrispondenza uno-a-uno con il front-end. Ad un certo punto, gli autori di temi possono solo sperare che non avranno più bisogno di affrontare questo tipo di modifiche supportando gli utenti su più versioni di WordPress. Per ora, sono in una fase di transizione un po' disordinata.
Annotazione del calendario e modifiche alle classi
Il team principale ha modificato il markup della funzione get_calendar() , che interessa anche il widget Calendario. L'output del calendario non ha più un elemento <tfoot> . Invece, i collegamenti del mese precedente e successivo sono stati spostati in un elemento <nav> sotto l'elemento <table> .
L'output del calendario aggiunge o modifica anche più ID e classi:
-
.wp-calendar-tableaggiunto all'elemento wrapper. -
.wp-calendar-navaggiunto all'elemento wrapper di navigazione. -
.wp-calendar-nav-nextsostituisce l'ID#nextnel collegamento del mese successivo. -
.wp-calendar-nav-prevsostituisce l'ID#prevnel collegamento del mese precedente.
Questi sono cambiamenti radicali. Qualsiasi CSS personalizzato che ha preso di mira il vecchio HTML o ID dovrà essere aggiornato.

Blocca gli sviluppatori

Per gli sviluppatori di plugin che creano blocchi personalizzati, WordPress 5.4 introduce diverse nuove API e strumenti per lavorare con il sistema a blocchi.
Blocco ponteggi
Gli sviluppatori hanno un nuovo pacchetto NPM per creare rapidamente un plug-in di blocco. Con un singolo comando di npm init @wordpress/block <plugin-name> lo script creerà una nuova directory e creerà i file PHP, CSS e JavaScript appropriati necessari per creare un plug-in di blocco. Gli sviluppatori possono utilizzare i moderni strumenti JavaScript per impostazione predefinita o, facoltativamente, scegliere di utilizzare una versione ES5.
L'intenzione del pacchetto di scaffolding dei blocchi è che gli autori di plug-in costruiscano plug-in a blocco singolo che alla fine si faranno strada nella directory dei blocchi ufficiale.
API delle raccolte di blocchi
L'API Block Collections funziona in modo simile alle categorie. Tuttavia, sono basati sullo spazio dei nomi. Quando uno sviluppatore di plug-in registra una raccolta personalizzata, tutti i blocchi che condividono lo spazio dei nomi della raccolta verranno visualizzati in una sezione personalizzata nell'inseritore di blocchi. Questo sembra essere un modo più intelligente per organizzare i blocchi. Sarà sicuramente utile per i plugin che creano librerie di blocchi, fornendo un modo automatico per raggrupparli insieme.
API delle variazioni di blocco
La nuova API Block Variations consente agli sviluppatori di blocchi di creare essenzialmente copie di blocchi con una variazione. Ogni variazione registrata apparirà come un blocco separato nell'inseritore di blocchi tra cui gli utenti possono scegliere.
Un buon esempio di questa funzionalità è il nuovo blocco delle icone social. Si tratta di un blocco unico con 40 varianti per i vari social network.
Altre modifiche relative agli sviluppatori
Ci sono un paio di altre modifiche degne di nota che attraversano sia il territorio di sviluppo del plugin che quello del tema.
Nuovi ganci del menu di navigazione
Dopo aver atteso e atteso e atteso, gli sviluppatori stanno finalmente ottenendo alcuni hook spesso richiesti per l'aggiunta di campi personalizzati alla schermata di amministrazione e al personalizzatore del menu di navigazione. Almeno un biglietto risale a 9 anni fa, ma è meglio tardi che mai. In passato, gli sviluppatori avrebbero dovuto utilizzare una classe walker personalizzata per apportare alcune delle personalizzazioni necessarie. Tuttavia, era possibile utilizzare solo una singola classe walker alla volta, il che significava che più plug-in che apportavano modifiche non avrebbero funzionato insieme.
Il core team ha aggiunto il nuovo hook wp_nav_menu_item_custom_fields nella schermata di amministrazione dei menu di navigazione, che appare prima dei pulsanti "sposta" per le singole voci di menu. Per la parità con l'amministratore, le voci del menu di navigazione hanno un nuovo wp_nav_menu_item_custom_fields_customize_template nel personalizzatore. Questi hook consentiranno agli sviluppatori di aggiungere campi modulo personalizzati necessari per aggiungere dati personalizzati alle voci del menu di navigazione.
apply_shortcodes() Funzione alias
WordPress 5.4 introduce una nuova funzione apply_shortcodes() . È un alias per la funzione do_shortcode() . La nuova funzione fornisce un nome di funzione più corretto dal punto di vista semantico. In genere, le funzioni con un prefisso do_ output o qualche tipo di azione. Le funzioni con il prefisso apply_ prevedono la restituzione dei dati.
Se stai creando un tema o un plug-in con aree sensibili allo shortcode, ti consigliamo di passare alla nuova funzione. Sebbene la funzione do_shortcode() non sia attualmente contrassegnata per la deprecazione, questo dovrebbe essere l'obiettivo finale.
