WordPress 5.6 è la prossima importante versione di WordPress che sarà presto disponibile. Oggi siamo entusiasti di immergerci in profondità con te nelle funzionalità e aggiunte più interessanti che verranno fuse in Core.
Tuttavia, non tutto riguarda l’Editor blocchi. Diverse funzionalità sono state aggiunte a WordPress Core, come un nuovo tema Twenty Twenty-One predefinito , aggiornamenti automatici per le versioni principali, migliore supporto per PHP 8.0, password delle applicazioni per l’autenticazione API REST.
E c’è molto di più in WordPress 5.6. Vedremo miglioramenti dell’accessibilità, miglioramenti dell’interfaccia utente, tonnellate di correzioni di bug e un enorme elenco di modifiche per gli sviluppatori.
Novità con l’Editor blocchi
Con WordPress 5.6, diverse versioni del plugin Gutenberg sono state unite al core, quindi gli utenti e gli scrittori di WordPress dovrebbero notare diversi miglioramenti nell’editor. Vedremo schemi di blocco migliorati, conteggi di parole nel pannello informazioni, navigazione da tastiera migliorata, interfaccia utente drag & drop migliorata e molto altro ancora.
Immergiamoci nelle modifiche più interessanti che vedremo nell’editor dei blocchi.
- Blocchi, modelli e miglioramenti dell’interfaccia utente
- Blocca API V2
- Funzionalità aggiuntive e miglioramenti per sviluppatori di blocchi
Blocchi, modelli e miglioramenti dell’interfaccia utente
Nuove funzionalità di blocco, miglioramenti e correzioni di bug miglioreranno l’esperienza di modifica complessiva. Inoltre, è stato fatto un ottimo lavoro sull’accessibilità . Di seguito troverai la nostra selezione selezionata delle funzionalità più interessanti che vedrai nell’editor di blocchi una volta aggiornato il tuo sito Web a WordPress 5.6.
Controlli di posizione per i video nel blocco copertina
Aggiunto a Cover Blocks da Gutenberg 8.6 , i controlli di posizione per i video consentono agli utenti di spostare il punto focale e impostare una posizione personalizzata per i video . Questa funzionalità era precedentemente disponibile solo per gli sfondi delle immagini.
Controlli di posizione video per il blocco di copertura
I valori di posizione vengono impostati facendo clic in un punto qualsiasi del selettore del punto focale e / o utilizzando i tasti freccia sulla tastiera. Puoi saltare i valori di 10 tenendo premuto Shift (vedi anche # 22531 ).
Blocca gli aggiornamenti dei pattern
WordPress 5.6 include anche diversi miglioramenti del modello di blocco aggiunti con Gutenberg 8.6 .
Il layout, il testo e il colore dell’intestazione e del paragrafo grandi sono stati aggiornati ( # 23858 )
L’intestazione in Due colonne di testo è stata spostata fuori dal blocco di testo e posizionata sopra le colonne ( # 23853 )
Il modello di citazione ora include un’immagine in alto e un separatore in basso.
Il nuovo modello di citazione include un’immagine e un separatore
Un nuovo modello di intestazione e paragrafo è stato aggiunto con Gutenberg 8.7 ( # 24143 ).
Pattern di intestazione e paragrafo in WordPress 5.6
Un buon miglioramento dell’usabilità per l’inserimento di blocchi è il menu a discesa della categoria del modello di blocco , che consente di filtrare i modelli per categoria . Questo è estremamente utile quando hai un sacco di modelli tra cui scegliere ( # 24954 ).
Il menu a discesa della categoria del modello di blocco
Supporto per i sottotitoli video
I blocchi video ora supportano i sottotitoli video .
Aggiunta di sottotitoli video in Video Block
Gli editori e i creatori di contenuti dovrebbero fornire i sottotitoli video in formato WebVTT (Web Video Text Tracks Format), che è “un formato per la visualizzazione di tracce di testo temporizzate (come sottotitoli o didascalie) utilizzando l’ <track>
elemento” ( # 25861 ).
Tieni traccia degli elementi che si collegano ai sottotitoli in diverse lingue
Dopo aver caricato i file .vtt , i visitatori del sito potranno abilitare i sottotitoli nella loro lingua preferita.
Impostazioni utente dei sottotitoli video
Trasforma più blocchi in un blocco di colonne
Un interessante miglioramento dell’usabilità è la capacità di convertire più blocchi selezionati in un blocco di colonne.
Seleziona più blocchi
Devi solo selezionare i blocchi che desideri mostrare nelle colonne, quindi fare clic sul pulsante in alto a destra della barra degli strumenti dei blocchi.
Ogni blocco selezionato verrà convertito in una colonna di un blocco di colonne.
Tre blocchi convertiti in tre colonne
Motivi di sfondo nel blocco di copertura
I blocchi di copertura possono ora visualizzare motivi di sfondo.
Un blocco di copertura con un motivo di sfondo
Per aggiungere un motivo di sfondo, carica un’immagine del motivo, quindi attiva l’ opzione Sfondo ripetuto (ecco tutto ciò che devi sapere sulla Libreria multimediale in WordPress ).
Al termine, regola il selettore del punto focale in base alle tue esigenze e prova diverse combinazioni con sfondi fissi.
Controllo della dimensione dell’immagine aggiunto al blocco multimediale e di testo
Con Gutenberg 9.1 , un nuovo controllo della dimensione dell’immagine è stato aggiunto alle immagini in Media & Text Block.
Gli utenti possono ora scegliere tra tutte le dimensioni delle immagini disponibili ( # 24795 ).
Controllo della dimensione dell’immagine nel blocco multimediale e di testo
Blocca API V2
Una nuova versione di Block API consente ai blocchi di eseguire il rendering del loro elemento wrapper. L’obiettivo della nuova versione dell’API è alleggerire il DOM dell’editor e farlo corrispondere al contenuto della prima pagina. Secondo Ella van Durpe:
Il più grande vantaggio di questo è che temi e plugin possono modellare più facilmente il contenuto del blocco se il markup è lo stesso nell’editor.
La nuova versione richiede di dichiarare la apiVersion
proprietà sulla registrazione del tipo di blocco:
registerBlockType( name, { apiVersion: 2 } );
La nuova API richiede anche l’ useBlockProps
hook nella Edit
funzione di blocco . Questo hook contrassegna l’elemento wrapper di un blocco come un elemento di blocco.
Qualsiasi proprietà passata a questo hook verrà unita e restituita all’elemento wrapper. Il seguente esempio dalle note dello sviluppatore mostra un semplice caso d’uso:
import { useBlockProps } from '@wordpress/block-editor';
function Edit( { attributes } ) {
const blockProps = useBlockProps( {
className: someClassName,
style: { color: 'blue' },
} );
return <p { ...blockProps }>{ attributes.content }</p>;
}
Funzionalità aggiuntive e miglioramenti per sviluppatori di blocchi
Oltre alla Block API versione 2, ecco un elenco di aggiunte che gli sviluppatori devono seguire.
Block Supports API
L’API Block Supports consente agli sviluppatori di blocchi di aggiungere funzionalità ai propri blocchi. Colori , sfondi, dimensioni dei caratteri sono solo alcune delle molte funzionalità che possono essere aggiunte ai blocchi tramite l’API Block Supports.
WordPress 5.6 introduce anche diversi nuovi supporti per i blocchi “per aumentare la coerenza e rendere più facile introdurre queste opzioni nei blocchi”.
Gli sviluppatori possono utilizzare il nuovo supporto per i blocchi aggiungendo le chiavi corrispondenti alla supports
proprietà del file block.json o direttamente nella registerBlockType
funzione .
Il seguente esempio dalla nota dello sviluppatore di Block Supports mostra come funziona:
supports: {
color: {
background: true, // Enable background color UI control.
gradient: true, // Enable gradient color UI control.
text: true // Enable text color UI control.
},
fontSize: true, // Enable font size UI control.
lineHeight: true // Enable line height UI control.
}
Il valore dello stile verrà automaticamente associato all’elemento wrapper tramite la has-<value>-<preset-category>
classe (per valori preimpostati) o con un style
elemento (per valori personalizzati).
Per questo motivo, i Block Support possono essere utilizzati con la nuova Block API V2 .
I supporti per blocchi possono essere utilizzati anche con blocchi dinamici .
API createBlocksFromInnerBlocksTemplate
Gli sviluppatori possono utilizzare il componente InnerBlocks per creare blocchi personalizzati contenenti altri blocchi. Esempi sono il blocco Colonne e il blocco Collegamenti social.
La nuova createBlocksFromInnerBlocksTemplate
Block API ti consente di creare blocchi dal modello InnerBlocks.
Vedere le note dello sviluppatore per una visualizzazione depper e un esempio di codice.
Componenti della barra degli strumenti
Un paio di modifiche influiscono anche sui componenti della barra degli strumenti :
1. Componente ToolbarGroup
Prima di WordPress 5.6, il componente Toolbar consentiva agli sviluppatori di raggruppare le opzioni correlate in un contenitore comune. Ora, invece , dovrebbe essere utilizzato un nuovo componente ToolbarGroup .
<BlockControls>
<ToolbarGroup>
<ToolbarButton />
</ToolbarGroup>
</BlockControls>
2. ToolbarButton e ToolbarItem Components
L’uso di elementi tabbable direttamente come elementi della barra degli strumenti (cioè <button>
) è stato deprecato. Con l’ obiettivo di migliorare l’accessibilità, gli elementi della barra degli strumenti possono essere aggiunti utilizzando ToolbarButton per i pulsanti e ToolbarItem per altri controlli. L’esempio seguente mostra un pulsante e un menu a discesa :
<BlockControls>
<ToolbarItem as="button" />
<ToolbarButton />
<ToolbarItem>
{ ( itemProps ) => ( <DropdownMenu toggleProps={ itemProps } /> ) }
</ToolbarItem>
</BlockControls>
Disattivazione dei modelli di blocco principale
I modelli di base possono ora essere disabilitati utilizzando il core-block-patterns
flag di supporto ( # 24042 )
Disattivazione dell’editor di immagini in linea
Gutenberg 8.4 ha aggiunto una funzione di modifica delle immagini in linea che consente agli utenti di modificare le immagini direttamente dall’editor dei blocchi.
Modifica delle immagini in linea
Gli sviluppatori possono ora disabilitare l’editor di immagini utilizzando il block_editor_settings
filtro ( # 23966 ):
add_filter( 'block_editor_settings', function( $settings ) {
$settings['imageEditing'] = false;
return $settings;
} );
Modifica delle immagini in linea disattivata
Blocchi riutilizzabili spostati in un pacchetto separato
I blocchi riutilizzabili, precedentemente parte del @wordpress/editor
pacchetto, sono stati spostati nel @wordpress/reusable-blocks
pacchetto per renderli disponibili in altri editor.
Un nuovo tema predefinito: Twenty Twenty-One
WordPress 5.6 include un nuovissimo tema predefinito. Twenty Twenty-One è un tema WordPress minimalista e altamente accessibile con un layout a colonna singola e una barra laterale a piè di pagina.
Il nuovo tema utilizza uno stack di caratteri di sistema e una tavolozza di colori minima basata su colori di sfondo pastello.
Anteprima del tema Twenty Twenty-One (origine immagine: Make WordPress Core)
Aggiornamenti automatici per le principali versioni
Gli aggiornamenti automatici sono una funzionalità fondamentale introdotta in WordPress 3.7 che mira a migliorare la sicurezza del sito e rendere più facile per gli amministratori del sito mantenere aggiornati i propri siti Web WordPress .
Sebbene gli aggiornamenti di base minori automatici siano stati implementati nelle versioni precedenti, con WordPress 5.6 gli amministratori del sito possono ora abilitare manualmente gli aggiornamenti automatici anche per le versioni principali (ne riparleremo in un secondo).
Sfortunatamente, questa attività di manutenzione cruciale potrebbe ancora creare un po ‘di confusione per gli utenti non esperti. Puoi leggere ulteriori informazioni su come funzionano gli aggiornamenti automatici nel nostro post del blog Deep Dive Into WordPress Automatic Updates .
Quindi, WordPress 5.6 introduce una nuova interfaccia che consente agli amministratori del sito di abilitare gli aggiornamenti automatici per le principali versioni principali.
L’ambito di questa funzione è cambiato durante il ciclo beta di WordPress 5.6 e la nota dello sviluppatore originale è stata sostituita. Nelle parole di Jb Audras ,
L’ambito iniziale degli aggiornamenti automatici di Core è stato spostato a:
- Fornisci alcuni aggiornamenti al design dell’interfaccia utente.
- Per le installazioni esistenti, il comportamento rimarrà lo stesso di oggi: ha attivato gli aggiornamenti minori per impostazione predefinita, ma un utente deve optare per gli aggiornamenti principali (le costanti e i filtri che sono già in uso da host o agenzie continueranno a precedenza).
- Per le nuove installazioni, il comportamento predefinito cambierà: attivato per gli aggiornamenti minori per impostazione predefinita e attivato per gli aggiornamenti principali per impostazione predefinita.
A partire da WordPress 5.6, puoi attivare gli aggiornamenti automatici per le principali versioni di base nella schermata Aggiornamenti , dove una nuova interfaccia utente fornisce una casella di controllo che ti consente di abilitare gli aggiornamenti automatici per tutte le nuove versioni di WordPress .
Abilita gli aggiornamenti automatici per tutte le nuove versioni di WordPress
Dopo aver abilitato gli aggiornamenti automatici di base per le versioni principali, è possibile abilitarne l’attivazione solo per la manutenzione e la sicurezza facendo clic su Passa agli aggiornamenti automatici solo per le versioni di manutenzione e di sicurezza .
Passa agli aggiornamenti automatici solo per le versioni di manutenzione e sicurezza
Principali aggiornamenti automatici principali per gli sviluppatori
Innanzitutto, quando sono abilitati gli aggiornamenti automatici principali principali, l’ auto_update_core_major
opzione viene archiviata nel database con l’ opzione option_value
. Quindi, se get_site_option( 'auto_update_core_major' )
ritorna true
, la casella di controllo degli aggiornamenti automatici è selezionata.
Quindi WordPress controlla se gli aggiornamenti automatici principali principali sono abilitati tramite la WP_AUTO_UPDATE_CORE
costante o il allow_major_auto_core_updates
filtro e imposta la casella di controllo di conseguenza.
Gli sviluppatori possono anche disabilitare gli aggiornamenti automatici principali impostando la WP_AUTO_UPDATE_CORE
costante su false
o minor
come mostrato di seguito (vedere anche Controllo degli aggiornamenti in background tramite wp-config.php ):
# Disables all core updates:
define( 'WP_AUTO_UPDATE_CORE', false );
# Enables minor updates:
define( 'WP_AUTO_UPDATE_CORE', 'minor' );
Si noti che i valori possibili per WP_AUTO_UPDATE_CORE
sono true
(tutti), 'beta'
, 'rc'
, 'minor'
, false
.
Un’altra opzione per disabilitare gli aggiornamenti automatici principali principali per impostazione predefinita è l’utilizzo del nuovo allow_major_auto_core_updates
filtro:
add_filter( 'allow_major_auto_core_updates', '_return_false' );
Alcuni commenti sull’aggiunta di aggiornamenti automatici al Core
Nel dicembre 2018, Matt Mullenweg ha condiviso le nove priorità per il 2019 in cui “Fornire agli utenti un modo per optare per gli aggiornamenti automatici delle principali versioni Core” era il numero 7. Forse un po ‘in ritardo, ma ci stiamo arrivando.
I principali aggiornamenti di base automatici dovrebbero avere un grande impatto sulla sicurezza di WordPress e sull’esperienza complessiva. Una cosa sembra essere chiara: da un punto di vista tecnico, la principale funzionalità di aggiornamenti di base automatici è un’attività complessa che non viene eseguita al 100% con il rilascio di WordPress 5.6.
Dopo un’attenta discussione su Slack, Josepha Haden ha riassunto le preoccupazioni e le domande provenienti dai collaboratori di Core.
L’obiettivo principale a lungo termine è disporre di aggiornamenti automatici disponibili nella maggior parte dei siti Web WordPress per migliorare la sicurezza nell’intero ecosistema WordPress ( oltre il 30% del Web ).
Ad ogni modo, secondo Helen Hou-Sandí , Core Lead Developer:
Nella mia mente ci sono alcune cose tecniche molto difficili da eseguire e questo richiede una proprietà del prodotto tecnico MOLTO disciplinato e mirato
Quindi dovremmo vedere ulteriori modifiche e miglioramenti all’interfaccia utente degli aggiornamenti principali automatici nel tempo. Questo è quello che possiamo aspettarci da ora in poi:
WordPress 5.6:
- Nelle installazioni esistenti, gli aggiornamenti principali devono essere abilitati dall’utente . Qualsiasi costante e filtro già in uso avrà la precedenza. Gli aggiornamenti minori sono abilitati per impostazione predefinita.
- Nelle nuove installazioni, gli aggiornamenti minori e principali sono abilitati per impostazione predefinita .
WordPress 5.6.1:
- Dovremmo vedere alcune modifiche all’interfaccia utente principale degli aggiornamenti automatici in base al feedback.
WordPress 5.7:
- È necessario aggiungere una spinta alla schermata Site Health per chiunque abbia disattivato gli aggiornamenti automatici principali.
- Un opt-in per gli aggiornamenti automatici dovrebbe essere aggiunto al processo di installazione in WordPress 5.7.
Una grande preoccupazione con gli aggiornamenti automatici di base è la fiducia degli utenti. Secondo Helen:
Credo che possiamo ancora fare molto lavoro per sollecitare in modo proattivo la fiducia degli utenti, specialmente quelli che hanno avuto precedenti esperienze negative con WordPress e / o aggiornamenti
Tuttavia, ogni sito Web WordPress è un mix di Core, plug-in e tema. Nelle parole di Helen:
Gli aggiornamenti principali sono in linea di massima abbastanza sicuri e ci sono alcune protezioni integrate, ma poiché i siti possono eseguire qualsiasi codice da qualsiasi fonte, non esiste una cosa come “100%” per “ogni tipo di sito Web WordPress”.
Gli utenti con aggiornamenti automatici di base abilitati devono eseguire regolarmente il backup dei propri siti Web o scegliere un host Web che fornisca backup automatici nei loro piani.
Gli aggiornamenti automatici principali influenzeranno anche l’esperienza di aggiornamento complessiva, inclusi gli aggiornamenti automatici di plugin e temi. Joost de Valk ha osservato in un commento:
Se abilitiamo gli aggiornamenti automatici principali di WordPress per impostazione predefinita, dovremmo fare lo stesso per i plugin. In caso contrario, plugin e temi non possono essere aggiornati per cose che devono essere risolte a causa degli aggiornamenti principali. Penso che anche gli utenti si aspetterebbero questo: se gli aggiornamenti automatici di WordPress, plugin e temi dovessero aggiornarsi automaticamente.
Modifiche alla salute del sito in WordPress 5.6
Oltre a tutte le funzionalità qui discusse, WordPress 5.6 offre anche una versione migliorata dello strumento Site Health , che ora si comporta in modo diverso in background.
Convalida dei dati di controllo dello stato del sito
Un validatore ora controlla le risposte ai problemi per i test di integrità del sito. Il validatore eliminerà qualsiasi risposta non valida, impedendo allo strumento Site Health di causare errori fatali e interrompere qualsiasi ulteriore controllo.
D’ora in poi, le risposte non valide non influenzeranno l’indicatore di integrità del sito ( # 50145 ).
Controlli asincroni tramite REST Endpoind
Lo strumento Site Health è un potente strumento di sicurezza che consente ai proprietari del sito di essere a conoscenza dello stato di salute dei loro siti web.
Questo strumento esegue una serie di test di sicurezza fornendo una panoramica dello stato di salute del tuo sito web.
Questi test rientrano in due categorie: test diretti , in esecuzione al caricamento della pagina e test asincroni , che potrebbero richiedere del tempo per essere completati e verranno eseguiti in seguito tramite chiamate JavaScript.
In precedenza, questi test venivano eseguiti con una chiamata a admin-ajax.php . Con WordPress 5.6, le cose si stanno allontanando da admin-ajax.php e verrà invece utilizzato un nuovo endpoint API REST . A partire da WordPress 5.6, i test asincroni possono essere trovati sotto lo spazio dei /wp-json/wp-site-health/v1
nomi.
Grazie al nuovo miglioramento dell’API REST, plugin e temi sono anche in grado di utilizzare gli endpoint REST e non si limitano alle azioni Ajax per i loro test di integrità.
Ogni test asincrono può ora dichiarare l’ has_rest
argomento, il cui valore predefinito è false
.
Il codice seguente da wp-admin / includes / class-wp-site-health.php mostra l’array di test asincroni in WordPress 5.6:
'async' => array(
'dotorg_communication' => array(
'label' => __( 'Communication with WordPress.org' ),
'test' => rest_url( 'wp-site-health/v1/tests/dotorg-communication' ),
'has_rest' => true,
'async_direct_test' => array( WP_Site_Health::get_instance(), 'get_test_dotorg_communication' ),
),
'background_updates' => array(
'label' => __( 'Background updates' ),
'test' => rest_url( 'wp-site-health/v1/tests/background-updates' ),
'has_rest' => true,
'async_direct_test' => array( WP_Site_Health::get_instance(), 'get_test_background_updates' ),
),
'loopback_requests' => array(
'label' => __( 'Loopback request' ),
'test' => rest_url( 'wp-site-health/v1/tests/loopback-requests' ),
'has_rest' => true,
'async_direct_test' => array( WP_Site_Health::get_instance(), 'get_test_loopback_requests' ),
),
'authorization_header' => array(
'label' => __( 'Authorization header' ),
'test' => rest_url( 'wp-site-health/v1/tests/authorization-header' ),
'has_rest' => true,
'headers' => array( 'Authorization' => 'Basic ' . base64_encode( 'user:pwd' ) ),
'skip_cron' => true,
),
),
Controlli dell’integrità del sito pianificati :
Sebbene siano stati implementati test asincroni per prevenire caricamenti lenti e timeout delle pagine , tale preoccupazione non esiste con i test pianificati.
Con questo in mente, oltre has_rest
all’argomento che abbiamo menzionato sopra, gli array di test possono anche dichiarare l’ async_direct_test
argomento (usando il codice sopra), che dovrebbe essere un’istanza richiamabile di un test.
Se un test viene eseguito durante un evento pianificato, il test non utilizzerà l’endpoint dell’API REST ma verrà eseguito direttamente.
Password dell’applicazione per l’autenticazione dell’API REST
Application Passwords è un nuovo sistema per effettuare richieste autenticate a varie API di WordPress.
Le password sono lunghe 24 caratteri e sono composte da caratteri maiuscoli, minuscoli e numerici, che possono essere generati manualmente o tramite l’API REST.
Per generare manualmente una nuova password dell’applicazione, accedere alla schermata del profilo e scorrere la pagina verso il basso.
Password dell’applicazione nella schermata del profilo utente
Scegli un nome per la password dell’applicazione e conferma. WordPress mostrerà la tua nuova password.
Una nuova password per l’applicazione
Le password delle applicazioni vengono visualizzate in blocchi di 4 caratteri, separati da spazi, come mostrato di seguito:
gsUc UhkU 0ScI gdRd TGoU vrW5
Tuttavia, le password possono essere utilizzate con o senza spazi :
Le password dell’applicazione restituite attraverso il flusso di autorizzazione non includono spazi. Sono rigorosamente lì per rendere più facile per qualcuno che fissa una lunga stringa mantenere il loro posto se lo inserisce manualmente.
Possono essere usati in blocchi, senza spazi o, diamine, se lo desideri, potresti probabilmente aggiungere uno spazio dopo ogni carattere.
Nella schermata Profilo utente è possibile visualizzare, creare e revocare le password delle applicazioni. Le colonne Last Used e Last IP ti consentono di scoprire facilmente le password non più utilizzate che dovrebbero essere revocate.
Campi Ultimo utilizzo e Ultimo IP
Al momento della stesura di questo documento, le password dell’applicazione possono essere utilizzate con le richieste autenticate dall’API REST e con l’ API XML-RPC legacy . Tuttavia, dovremmo vedere le password delle applicazioni utilizzate con API aggiuntive in futuro. George Stephanis spiega:
Lo schema di autenticazione delle password dell’applicazione può essere applicato anche alle future API per WordPress non appena saranno disponibili. Ad esempio, se GraphQL o altri sistemi sono abilitati in WordPress, le password delle applicazioni forniranno loro un’infrastruttura di autenticazione solida e consolidata da costruire fuori dagli schemi.
Una chiamata autenticata all’API REST in Postman
Non è possibile utilizzare le password dell’applicazione su wp-login.php .
Per una visione più ravvicinata di questa funzione e approfondimenti tecnici, assicurati di controllare le seguenti risorse:
- Proposta: autenticazione API REST / password applicazione
- Password dell’applicazione: guida all’integrazione
- Plugin per le password delle applicazioni
Migliore supporto per PHP 8
PHP 8.0 offre tantissime nuove funzionalità e ottimizzazioni che lo rendono una vera pietra miliare nell’evoluzione del linguaggio. La versione più recente di PHP introduce molti aggiornamenti che interrompono la compatibilità con le versioni precedenti e molte funzionalità deprecate sono state ora ufficialmente rimosse. Quindi, aggiungere il supporto per PHP 8 in WordPress è una grande sfida.
Infatti, anche se i collaboratori di WordPress Core si impegnassero molto per rendere WordPress 5.6 compatibile con PHP 8, non dovremmo aspettarci che ogni possibile problema venga scoperto. L’obiettivo qui è raggiungere un punto in cui l’intero ecosistema WordPress è compatibile con PHP 8, che sembra davvero un osso duro da decifrare al momento.
Inoltre, un sito Web WordPress include almeno un tema e un numero variabile di plugin. Quindi, quello che possiamo aspettarci è un buon supporto per PHP 8 in WordPress Core, ma è difficile credere che plugin e temi aggiungerebbero rapidamente il supporto per PHP 8.
Siamo d’accordo con Jonathan Desrosiers quando afferma:
È impossibile conoscere lo stato del supporto PHP 8 all’interno dell’ecosistema più ampio (plugin, temi, ecc.). Per questo motivo, WordPress 5.6 dovrebbe essere considerato “beta compatibile” con PHP 8.
“Beta compatibile con PHP 8” sembra una buona espressione per rappresentare un processo in corso che richiede ancora molto impegno, ma allo stesso tempo riconosce il grande lavoro svolto finora.
Però,
Tutti gli sviluppatori di plugin e temi, così come le comunità di hosting, sono chiamati a rendere il loro codice compatibile con PHP 8. Ciò consentirà a WordPress di raggiungere la “piena compatibilità” prima e senza che gli utenti finali debbano sopportare il peso.
Importante
Sebbene la maggior parte delle incompatibilità identificate tramite test automatizzati sia stata risolta, sono ancora necessari alcuni test manuali. Per questo motivo, si consiglia vivamente di eseguire rigorosi test di compatibilità su un ambiente di staging o locale prima di aggiornare il proprio sito Web live a PHP 8 .
Alcune modifiche a PHP 8 di cui essere a conoscenza
Come accennato in precedenza, rendere WordPress completamente compatibile con PHP 8 è un work in progress. Jonathan Desrosiers fornisce un elenco delle funzionalità di PHP 8 e delle modifiche di cui gli sviluppatori WordPress dovrebbero essere a conoscenza.
Parametri denominati
Con gli argomenti denominati PHP è ora possibile passare argomenti a una funzione in base al nome del parametro, piuttosto che alla posizione del parametro. Ciò consente di scrivere codice che si auto-documenta, gli argomenti sono indipendenti dall’ordine e i valori predefiniti possono essere saltati arbitrariamente.
Sfortunatamente, i parametri attualmente denominati possono causare problemi di compatibilità con le versioni precedenti in WordPress. Il motivo principale è che i nomi dei parametri sono soggetti a modifiche senza preavviso fino al completamento della verifica corrente. Quindi, al momento della stesura di questo articolo:
L’utilizzo di parametri denominati durante la chiamata di funzioni e metodi di classe di WordPress non è esplicitamente supportato ed è altamente sconsigliato fino a quando questo controllo non può essere completato, poiché durante il controllo, i nomi dei parametri sono soggetti a modifiche senza preavviso. Quando questo audit sarà stato completato, sarà annunciato in una futura nota per gli sviluppatori.
Validazioni rigorose di tipo / valore per le funzioni interne
Quando si passa un parametro di tipo illegale, le funzioni interne e definite dall’utente si comportano in modo diverso. Le funzioni definite dall’utente generano un TypeError
, ma le funzioni interne si comportano in una varietà di modi, a seconda di diverse condizioni.
Per rimuovere queste incongruenze, in PHP 8 le API di analisi dei parametri interne generano sempre un messaggio di errore ThrowError
in caso di mancata corrispondenza del tipo di parametro.
La dichiarazione di tipo rigorosa non viene utilizzata in WordPress Core. Tuttavia, i collaboratori principali stanno lavorando per impedire il passaggio di tipi non validi alle funzioni principali. Fino a quando quel lavoro non sarà completato, questa modifica a PHP 8 potrebbe portare a TypeError
s, “specialmente se il tipo di un valore viene modificato in modo errato tramite codice agganciato a un filtro”.
Controlli di tipo più severi per gli operatori aritmetici e bit per bit
Nelle versioni precedenti di PHP, era consentito l’uso di operatori aritmetici e bit per bit su un array, una risorsa o un oggetto non sovraccarico, ma il comportamento era incoerente e talvolta persino irragionevole:
var_dump([] % [42]);
// int(0)
Con PHP 8, il comportamento è sempre lo stesso e tutti gli operatori aritmetici e bit per bit generano TypeError
un’eccezione quando l’operando è un array, una risorsa o un oggetto non sovraccarico (vedere RFC ).
Questo è un altro cambiamento che richiede un po ‘di lavoro extra da parte dei contributori Core, come i molti errori, avvertimenti e cambiamenti di avviso.
Ancora una volta, a causa dei numerosi problemi ancora irrisolti, si consiglia vivamente di eseguire test di compatibilità su un ambiente di staging o di sviluppo prima di passare a PHP 8 sul tuo sito web live. Ulteriori informazioni su WordPress e PHP 8.0 .
Modifiche aggiuntive per gli sviluppatori
WordPress 5.6 introduce tonnellate di modifiche per gli sviluppatori e non abbiamo potuto includerle tutte nel nostro elenco. Ma qui i primi 3 che pensiamo valga la pena guardare:
1. wp_after_insert_post Action Hook
Prima di WordPress 5.6 era possibile utilizzare save_posts
o azioni simili per eseguire codice personalizzato dopo la pubblicazione di un post. Ora WordPress 5.6 introduce il nuovo wp_after_insert_post
action hook, che si attiva solo una volta che termini e metadati sono stati salvati.
Inoltre, sono state aggiornate diverse funzioni per impedire che quei ganci vengano sparati. Il nuovo $fire_after_hooks
parametro è stato aggiunto alle wp_insert_posts()
, wp_update_post()
e le wp_insert_attachment()
funzioni. Se impostato su false
, impedisce la cottura dei ganci dopo l’inserimento.
Controlla la nota dello sviluppatore per una panoramica più approfondita.
2. Typecasting
Funzioni Typecasting intval()
, strval()
, floatval()
e boolval()
sono stati rimossi dal Nucleo a favore di typecasting diretta:
intval()
→(int)
strval()
→(string)
floatval()
→(float)
Questa modifica ha effetti diretti sulle prestazioni in quanto il typecasting diretto è ~ 6 volte più veloce delle funzioni di typecasting.
3. Oggetti WP_Error
La WP_Error
classe è stata migliorata per consentire l’unione di più WP_Error
istanze in una. In precedenza potevi farlo solo manualmente. Ora, WordPress 5.6 introduce tre nuovi metodi per aiutare a gestire più WP_Error
istanze. Il codice seguente è un esempio tratto dalla nota dello sviluppatore :
<?php
$error_1 = new WP_Error(
'code1',
'This is my first error message.',
'Error_Data'
);
$error_2 = new WP_Error(
'code2',
'This is my second error message.',
'Error_Data2'
);
// Merge from another WP_Error.
$error_1->merge_from( $error_2 );
// Retrieve all error data, optionally for a specific error code.
$error_1->get_all_error_data( 'code2' );
// Export to another WP_Error
$error_1->export_to( $error_2 );
Ulteriori letture per gli sviluppatori
È impossibile menzionare tutte le modifiche incentrate sullo sviluppo introdotte da WordPress 5.6, ma puoi leggere di più su di esse utilizzando le seguenti risorse:
- Aggiornamento della versione di jQuery fornita con WordPress
- Aggiornamento di core jQuery alla versione 3 – parte 2
- WordPress e PHP 8.0
- REST API Batch Framework in WordPress 5.6
- Vari cambiamenti mirati agli sviluppatori in WordPress 5.6
Sommario
WordPress 5.6 è una versione importante con tonnellate di funzionalità e modifiche sia per gli utenti che per gli sviluppatori. Siamo sempre entusiasti di vedere come l’evoluzione delle tecnologie web influenzi direttamente la sicurezza, le prestazioni , l’usabilità e l’accessibilità di WordPress .
Ma l’evoluzione non si ferma mai e possiamo già dare un’occhiata alle future potenziali date di rilascio .
Adesso tocca a te: cosa ti piace di più di WordPress 5.6? E quali funzionalità vorresti che fossero aggiunte a WordPress 5.7 ?