Salta al contenuto

WordPress 4.5 e i problemi con jQuery

Questo articolo ha oltre sei mesi di vita, quindi, mi raccomando, verifica le informazioni contenute in quanto potrebbero essere ormai obsolete.

Sui social si è scatenato il panico per la nuova versione di WordPress, la 4.5

WordPress 4.5 e i problemi con jQuery

Come a ogni nuova release di WordPress, vengono aggiornate varie librerie alle loro versioni più recenti.

Nello specifico:

  • jQuery 1.12.3
  • jQuery Migrate 1.4.0
  • Backbone 1.2.3
  • Underscore 1.8.3

Prima cosa da dire: NON è un bug di WordPress o di jQuery.

Cosa è cambiato in jQuery

In jQuery è stato corretto un bug che permetteva agli sviluppatori di scrivere codice errato, ma funzionante.

I sintomi dell’errore sono questi

Uncaught Error: Syntax error, unrecognized expression: a[href*=#]:not([href=#])

In pratica questo codice, che è abbastanza utilizzato, in realtà è errato.

La destinazione del link #, in questo caso, deve essere tra :

Questo fino alla versione precedente di jQuery funzionava

$( '.class a[href=#foo]' );

Da jQuery 1.12 non funziona più perché la destinazione del link deve essere tra

$( '.class a[href="#foo"]' );

Questo è solo un esempio, il problema può succedere anche in altre situazioni.

Il segnale che identifica il problema è href e #.

Ora molti utilizzatori e sviluppatori hanno scoperto la quantità industriale di codice sbagliato che, erroneamente, prima funzionava a causa di un bug di jQuery.

La soluzione del problema è semplice, per fortuna, quindi aggiornate il più rapidamente i vostri plugin e temi.

Alla data di questo post i seguenti temi e plugin sono già aggiornati:

  • Visual Composer – aggiornate alla 4.11.2+. Il problema di compatibilità è stato corretto nella versione 4.11 il 10 di marzo
  • Divi – aggiornate alla versione 2.7.3.  Il problema di compatibilità è stato corretto nella versione2.7.3 il 13 di aprile
  • Themify – Il problema di compatibilità è stato corretto  il 14 di aprile (Grazie a Gabriele per la segnalazione)

Se avete notizia di altri temi e plugin con aggiornamenti disponibili per correggere il problema, per favore, segnalateli nei commenti, così posso aggiornare l’elenco.

Allo stato attuale risultano molti temi venduti su Themeforest con questo problema. Contattate gli autori e chiedete loro di correggere il bug.

Se avete qualcosa da aggiungere scrivete nei commenti e aggiornerò l’articolo.

Si poteva comunicare meglio?

Sì.

jQuery non ha segnalato che la correzione del bug avrebbe creato problemi e WordPress, non essendoci questa segnalazione da parte di jQuery, non ha segnalato, a sua volta, che avrebbero potuto esserci problemi, in alcuni casi, bloccanti.

Speriamo che la prossima volta si riesca a fare di meglio.

C’era tempo per provare temi e plugin?

Sì.

Angelo, su facebook, ha controllato e la libreria jQuery 1.12.3 è stata aggiornata con la RC 2.

Se sei uno sviluppatore, iscriviti ai feed di make, così sarai sempre aggiornato sulle novità in corso di sviluppo.

Soluzione temporanea

Se l’autore del tema o plugin che vi crea problemi tarda a correggere il suo errore, Pascal, nei commenti, propone una soluzione tampone e cioè ripristinare il bug di jQuery caricando la vecchia versione di jQuery.

Copiate il codice che segue e inseritelo nel file functions.php del vostro tema.


if  ( ! is_admin() ) {
wp_deregister_script('jquery');
wp_register_script('jquery', ("http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"), false, '1.11.3');
wp_enqueue_script('jquery');
}

 

Ho una newsletter che parla di WordPress

This is the archive

Iscriviti alla mia Newsletter

Published inWordpress

9 Comments

  1. PascalPascal

    Soluzione temporanea, da mettere nel functions.php:
    if (!is_admin()) {
    wp_deregister_script(‘jquery’);
    wp_register_script(‘jquery’, (“http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js”), false, ‘1.11.3’);
    wp_enqueue_script(‘jquery’);
    }

    • PabloPablo

      Grazie Wolly, grazie Pascal! ^^

  2. Grazie per la spiegazione molto chiara e proffesionale.
    Penso che per adesso non aggiornero, farò una copia in locale testando il tutto.

  3. RiccardoRiccardo

    Ma nella pratica cosa da questo errore ad un tema o plugin?

    • Per esempio, se utilizzi un Visual Composer non aggiornato, non funziona più

  4. SimoneSimone

    Salve, in che punto va messo del function.php?

    grazie

      • SimoneSimone

        Ho provato in vari di punti ma:
        – o crashava il sito
        – o generava una stringa di errore nell’header (e comunque non funzionava) 🙁

Lascia un commento

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

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

%d blogger hanno fatto clic su Mi Piace per questo: