WordPress 4.2, attenzione al term splitting


Premessa: questo articolo è di natura tecnica, cercherò di rendere le cose il più chiare possibile, ma non potrò fare a meno di utilizzare la terminologia corretta.

Oggi, dovremmo avere il rilascio della nuova versione 4.2 di WordPress in inglese, contemporaneamente anche in italiano, come sempre con una major release, l’aggiornamento non deve essere precipitoso e deve essere eseguito dopo avere attuato alcuni, importanti, accorgimenti.

Primo, fra tutti, un backup dei dati del database e un backup, via FTP, dei file del proprio spazio web.

Occorre verificare, anche, la compatibilità di temi e plugin con la nuova versione.

L’ideale sarebbe avere un ambiente di “staging”, una copia esatta del sito online, e applicare lì le modifiche e verificare attentamente che tutto funzioni correttamente prima di applicare l’aggiornamento al vostro sito in produzione.

WordPress 4.2, fra le varie novità che analizzeremo nell’articolo di annuncio della nuova release, apporta un cambiamento che, in alcune situazioni, potrebbe essere fonte di problemi.

Term splitting

Cosa significa term splitting?

Quando dei termini sono suddivisi fra più tassonomie (nella tabella wp_terms sono condivisi da più tassonomie in contemporanea), ad una loro singola modifica o aggiornamento, verranno suddivisi in termini separati per ciascuna tassonomia. Questa modifica, ([31418]), risolve un dei bug più seccanti di WordPress (in inglese) ed è uno dei passaggi fondamentali per la realizzazione della taxonomy roadmap (in inglese).

Il term splitting, nella maggior parte dei casi, avverrà senza che ce ne si accorga.

Tuttavia vi sono alcuni temi e plugin che memorizzano il term ID come un dato statico.

In questi casi una modifica del term ID può essere la causa di diversi problemi.

Il team di WordPress ha analizzato i primi 100 plugin più scaricati per verificare se questi memorizzassero, in qualche modo, i term ID nel database nelle tabelle del database, tipo postmeta, usermeta,  options e altre ancora.

Su 100 plugin, 11 di questi hanno evidenziato la necessità di modifiche, per prevenire in anticipo i problemi derivanti dal term splitting:

Jetpack, WordPress SEO by Yoast, Google XML Sitemaps,All in One SEO Pack, Mailpoet, Advanced Custom Fields, Ninja Forms, Types, Custom Sidebars, Paid Memberships Pro, WordPress Download Manager.

Se avete scritto un plugin, un tema o avete realizzato delle personalizzazioni che memorizzano i term ID in maniera statica, potreste avere dei problemi anche voi.

Molti dei plugin elencati hanno già apportato le necessarie modifiche,  spiegate in un interessante articolo in inglese: Taxonomy term splitting in 4.2: a developer guide e ho personalmente verificato che plugin come Jetpack e WordPress SEO by Yoast hanno nei loro changelog, da tempo, già apportato le modifiche necessarie indicate nell’articolo menzionato.

Altri plugin famosi non risultano aggiornati da lungo tempo, come ad esempio Google XML Sitemaps , non risulta quindi alcuna modifica per correggere questo problema.

Anche se un plugin ha potenzialmente problemi con il term splitting, non è detto che il problema sia reale perché occorre, anche, che vi siano termini condivisi fra più tassonomie.

Come verificarlo?

Esiste un plugin, non presente sul repository ufficiale, scaricabile da github, WP Find Shared Terms, che si limita, semplicemente, ad elencare, se presenti, i termini duplicati come mostrato nell’immagine seguente.

shared-terms

 

A questo punto potrete modificare uno dei termini condivisi, assegnandogli un nome diverso o verificando che TUTTI i vostri plugin siano aggiornati, la seconda opzione è decisamente consigliabile, in ogni caso.

Se un plugin non è aggiornato da anni, forse, è meglio trovare un’alternativa più sicura perché potrebbe avere altri problemi non risolti.

Per dubbi o chiarimenti vi rimando al nostro forum, dove però, i volontari, NON potranno indicarvi con certezza se un plugin ha o meno problemi, o se è stato aggiornato correttamente o se è compatibile con la nuova gestione dei term, per questo dovrete verificare il changelog dei singoli plugin, sul repository ufficiale, e/o contattare l’autore.

I problemi che possono derivare da plugin non aggiornati per il term splitting e che memorizzano i term ID in maniera statica sono vari, e di seguito elenchiamo alcuni esempi chiarificatori ma non esaustivi:

  • utilizzando una versione di Jetpack non aggiornata, la funzione di articoli correlati non funzionerebbe più correttamente
  • plugin per la sitemap, potrebbero generare sitemap non corrette o incomplete o inconsistenti .

Quindi, ancora una volta, prima di aggiornare, effettuate sempre i backup, verificate che i plugin  siano aggiornati e l’utilizzo di termini duplicati su più tassonomie.

Avere una copia di tutto, PRIMA dell’aggiornamento, è fondamentale,  vi permetterà di ripristinare la situazione pre esistente, e da lì effettuare tutte le verifiche e le modifiche necessarie, prima di ripetere l’aggiornamento.

Un plugin non aggiornato, che possa essere fonte di problemi, anche in questo caso, NON deve essere un motivo per non aggiornare prontamente WordPress, ma un motivo in più per trovare un plugin alternativo per poter proseguire con gli aggiornamenti futuri garantendosi sempre un sito aggiornato e quindi sicuro.

Hai qualche Domanda o vuoi Commentare?

12 commenti su “WordPress 4.2, attenzione al term splitting

Grazie, articolo interessante da approfondire. Sarà valutare anche i temi più complessi come si comporteranno in seguito a queste modifiche.

Reply

Eccellente… complimenti per la spiegazione e per la professionalità… è sempre un piacere leggere queste news così tecniche

Reply

Grazie infinite per il vostro prezioso lavoro.
R.

Reply

Ho troppe cose attive…sono uno che aggiorna sempre il prima possibile ma questa volta mi sa che rischio tanto. Ok il backup ma il problema è capire come fare l’aggiornamento visti i numerosi plugin.

Grazie 1000 per aver fatto questo articolo!

Reply

Grazie mille ragazzi per la tempestività

Reply

Grazie per il prezioso articolo! molto interessante

Reply

Grazie mille per le info SteveAgl! Avevo dei dubbi su alcuni plugin ma ora so come fare le verifiche…

Reply

Thanks for highlighting the “term Splitting”, term splitting should be kept in mind while developing plugins which uses terms, one should also consider this when updating plugins before a full backup.

Reply

[…] As usual prima di aggiornare, non buttatevi a pesce ma magari verificate che i plugin che avete installato siano compatibili, e ce lo spiega bene SteveAgl  su WpItaly. […]

[…] A seguito della recente release 4.2 di WordPress c’è stata come sempre diffidenza e timore per quello che è il tanto problematico aggiornamento. Infatti per risolvere una falla di sicurezza relativa ai terms, in WordPress 4.2 c’è stato un’aggiornamento critico che, senza le dovute precauzioni, genera un sacco di problemi. Per evitare questi problemi WPItaly ha prodotto un ottima guida che potete trovare a questo indirizzo. […]

[…] A seguito della recente release 4.2 di WordPress c’è stata come sempre diffidenza e timore per quello che è il tanto problematico aggiornamento. Infatti per risolvere una falla di sicurezza relativa ai terms, in WordPress 4.2 c’è stato un’aggiornamento critico che, senza le dovute precauzioni, genera un sacco di problemi. Per evitare questi problemi WPItaly ha prodotto un ottima guida che potete trovare a questo indirizzo. […]

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Archivi

Categorie