WordPress 6.1 e WPML: attenzione a come aggiornare

Share this:

Nei giorni scorsi è stato rilasciato l’atteso update a WordPress 6.1 che introduce importanti novità sia lato designer/editor che lato sviluppo, aumentando le capacità di editing dell’amato-odiato-odiatissimo Block Editor (aka Gutenberg) ed allo stesso tempo fornendo utili miglioramenti alle performance del popolare CMS, implementando finalmente un modello di object cache persistente efficace per tutte le nostre istanze WP_Query.

WP_Query cache e WPML

Proprio queste modifiche all’assetto generale della WP Object Cache hanno avuto un impatto consistente su quei siti web che usano WPML (WordPress Multi Lingual). WPML usa infatti tecniche avanzate di filtro su WP_Query per gestire le traduzioni che, evidentemente, avevano bisogno di un tune up finale arrivato con qualche ritardo sulla timeline di WordPress 6.1.

In altre parole, aggiornando a WordPress 6.1 con WPML installato avrebbe generato un errore fatale rendendo il sito web inaccessibile.

PHP Fatal error:  Uncaught Error: Call to undefined method WP_Textdomain_Registry::reset() in /v3/wp-content/plugins/wpml-string-translation/classes/MO/Hooks/LanguageSwitch.php:139
Stack trace:
#0 /v3/wp-content/plugins/wpml-string-translation/classes/MO/Hooks/LanguageSwitch.php(119): WPML\ST\MO\Hooks\LanguageSwitch->resetTranslationAvailabilityInformation()
#1 /v3/wp-content/plugins/wpml-string-translation/classes/MO/Hooks/LanguageSwitch.php(73): WPML\ST\MO\Hooks\LanguageSwitch->changeMoObjects('en_US')
#2 /v3/wp-content/plugins/wpml-string-translation/classes/MO/Hooks/LanguageSwitch.php(48): WPML\ST\MO\Hooks\LanguageSwitch->switchToLocale('en_US')
#3 /wp-includes/class-wp-hook.php(310): WPML\ST\MO\Hooks\LanguageSwitch->languageHasSwitched('en')
#4 /wp-includes/class-wp-hook.php(332): WP_Hook->apply_fi in /v3/wp-content/plugins/wpml-string-translation/classes/MO/Hooks/LanguageSwitch.php on line 139

Questi problemi sono stati anticipati dal team di WPML con una mail arrivata ai sottoscrittori del plugin (che esiste solo nella versione a pagamento). Tuttavia, ciò non è bastato a evitare il peggio,

Se non hai ancora aggiornato a WordPress 6.1

Le istruzioni diramate dal team di WPML sono abbastanza chiare, ma piuttosto sbrigative. Come prima cosa, è necessario impostare gli aggiornamenti di WPML sul canale beta.

Già questa cosa non è il massimo: se è necessario utilizzare il canale delle beta release, significa comunque che il team di WPML non le ritiene pronte per passarle in produzione, ma non ci scoraggiamo.

WPML: Come attivare gli aggiornamenti alle beta release

Ecco come passare al canale Beta. Ricordate che la transizione è solo temporanea: in automatico, verrà impostata su Production dopo l’aggiornamento.

Per attivare gli aggiornamenti alle beta release, seguite questi passaggi;

  • Da wp-admin, andate in Plugins > Add New
  • Qui selezionate il tab Commercial
  • Sulla tendina Updates Channel selezionate Beta

A questo punto sarà possibile aggiornare i plugin String Translation alla versione 3.2.3 e WPML Multilingual CMS alla 4.5.12.

Considerate poi che:

  1. La transizione è temporanea: dopo l’update tornerete sul canale production in automatico
  2. La transizione è possibile solo se c’è una beta disponibile: altrimenti, la tendina non appare
  3. Appena le beta verranno completate e passate sul canale production, automaticamente sarà possibile aggiornarle per maggiore sicurezza e stabilità

Una volta installate le beta, sarà sicuro aggiornare a WordPress 6.1

Se hai già aggiornato a WordPress 6.1

In questo caso ti troverai con l’amara sorpresa di avere il frontend del sito bloccato e, probabilmente, anche il backend. Wp-admin non diventa indisponibile sempre, dipende dal set di plugin che abbiamo installato, ed in linea di massima spesso rimane funzionale.

Come prima cosa dobbiamo disattivare e reinstallare il plugin String Translation.

Questa cosa è bene farla nel modo più indolore possibile per WordPress e – per dirla con una citazione – a sua insaputa. Se utilizzassimo il pannello in wp-admin per disattivare e disinstallare String Translation, infatti, WordPress potrebbe anche eliminare la configurazione del plugin (a seconda di come abbiamo impostato WPML a riguardo) e noi adesso non vogliamo che succeda!

Quindi dobbiamo:

  • Eliminare (o rinominare) la cartella di WPML String Translation. Possiamo farlo da File Manager oppure via FTP.
  • A questo punto il sito avrà ripreso a funzionare!
  • Effettuiamo il login in wp-admin
  • A questo punto, dobbiamo attivare l’aggiornamento alle beta release di WPML e seguire le istruzioni di prima, come indicato qui

Seguendo queste istruzioni, il sito web riprenderà a funzionare in pochi minuti.

Share this:

Lascia un commento

Utilizziamo i cookie per offrirti la migliore esperienza online. Puoi accettare o personalizzare l'uso dei cookie, in accordo con la nostra cookie e privacy policy!

Close Popup
Privacy Settings saved!
Impostazioni

Quando visiti un sito Web, esso può archiviare o recuperare informazioni sul tuo browser, principalmente sotto forma di cookies. Alcuni cookie possono essere disattivati, altri sono invece vitali per il funzionamento del sito web. Controlla qui le tue impostazioni.

Questi cookie sono necessari per il funzionamento del sito Web e non possono essere disattivati nei nostri sistemi.

Cookie tecnici
Per utilizzare questo sito web usiamo i seguenti cookie tecnici.
  • wordpress_test_cookie
  • wordpress_logged_in_
  • wordpress_sec
  • wp_lang
  • popup_closed

Salva le impostazioni
Accetta tutti i cookie