Perché WordPress utilizza jQuery v1.12.4 obsoleto?
Mentre controllavo il codice sorgente, ho notato che WordPress utilizza jQuery v1.12.4. Perché WordPress usa questa versione obsoleta di jQuery?

Molti temi e plugin utilizzano jQuery così come viene caricato dal core di WordPress. Ogni volta che jQuery viene aggiornato, c'è il rischio che temi e plugin più vecchi smettano di funzionare (perché molti di essi sono ancora utilizzati ma non vengono più aggiornati). Ecco perché vedi anche jquery-migrate.js
nel tuo codice sorgente. Si tratta di uno script che intercetta le funzioni vecchie utilizzate da plugin/temi e si assicura che continuino a funzionare nelle versioni più recenti di jQuery.
Passare alla famiglia jQuery 3.x
causerebbe l'interruzione di molti plugin/temi, perché non è possibile avere uno script di migrazione per tutto ciò che è deprecato. Questo è il motivo per cui nuove versioni della famiglia 1.x
venivano ancora sviluppate mentre le famiglie 2.x
e 3.x
esistevano già. Non ci saranno nuove versioni 1.x
e 2.x
dopo 1.12
e 2.2
, tranne per patch (soprattutto di sicurezza). Anche se jQuery 1.12
non è obsoleto al momento, lo sarà nel prossimo futuro.
Quindi, WordPress si trova in una situazione complicata. Se non aggiorna a una versione più recente di jQuery, non può tenere il passo con le nuove possibilità. Tuttavia, se aggiorna, i siti più vecchi smetteranno di funzionare. L'esito più probabile è che WP aspetterà un paio d'anni, in modo che i temi/plugin più vecchi vengano gradualmente eliminati, e poi passerà alla famiglia 3.x
.
Chiarimento
Quanto sopra potrebbe far pensare che migrare dalle versioni 1.x
a 3.x
non sia effettivamente possibile. Non è vero. È solo un po' complicato. Il trucco è prima aggiornare a 1.12
, eseguire il debug del risultato utilizzando il vecchio script di migrazione e poi aggiungere lo script di migrazione 3.0
, che funziona con 1.12
. Istruzioni dettagliate qui.
Aggiornamento sulla sicurezza
Gli sviluppatori noteranno che Google Dev Tools / Lighthouse segnala i siti WordPress come vulnerabili a causa della presenza di questa versione più vecchia di jQuery - o almeno così sembra. In realtà, tutto ciò che fa Lighthouse è verificare se questa libreria ha vulnerabilità menzionate nel Snyk Vulnerabilities Database. Se controlli nei dettagli, scoprirai che la versione 1.12.4 è pulita. Considerando l'ampia diffusione di 1.12.4, puoi contare sul fatto che qualsiasi vulnerabilità seria verrà affrontata rapidamente.
Aggiornamento sulla migrazione
Il passaggio a jQuery 3.x è stato effettuato in WordPress 5.5 e completato in 5.7. Per chi ha ancora bisogno della versione più vecchia, esiste un plugin che permette di tornare a una versione precedente di jQuery.

Solo per aggiungere un po' di informazioni extra - sia jQuery 1.x che 2.x sono stati attivamente aggiornati fino a maggio di quest'anno, la differenza tra loro era semplicemente che 1.x aveva compatibilità con IE8, mentre 2.x ha rimosso le patch e le correzioni per quei browser problematici. La versione 3.x è la nuova release, e fa un ulteriore passo avanti cambiando varie interfacce per essere compatibile con le interfacce "ufficiali" HTML5/JavaScript (cioè, dove faceva le cose allo stesso modo, queste sono diventate standard dopo che jQuery aveva già le sue versioni che facevano lo stesso tipo di cose).

- Non è obsoleto
- Passare alla versione 2.x o 3.x è troppo presto, molte persone utilizzano ancora IE8 che è supportato solo sulla 1.x

@LightnessRacesinOrbit Sono d'accordo, ma dalla mia esperienza questa domanda è perfettamente in linea con il livello medio di uno sviluppatore WP.

Aggiornamento per gennaio 2018: L'idea che sia obsoleto nonostante sia ancora quello predefinito incluso con WordPress non è più "senza senso". Sono state identificate vulnerabilità XSS nella versione 1.12.4 e il ramo 1.x non riceve più aggiornamenti. La soluzione consigliata è aggiornare a jQuery 3.x https://snyk.io/test/npm/jquery/1.12.4?severity=high&severity=medium&severity=low

Inoltre, quando si utilizza Lighthouse, Google ti informa che la versione 1.12.4 contiene vulnerabilità di sicurezza note, quindi non dovresti usarla.

Supportare IE8, cosa che nemmeno Microsoft fa più, a questo punto è irresponsabile. Mantiene gli utenti su un browser obsoleto con problemi di sicurezza. Se qualcuno sta ancora usando IE8, deve smettere.

Questa risposta e alcuni dei commenti sono obsoleti. JQuery 1.x e 2.x non ricevono più patch secondo la pagina principale jquery.com

@DavidA.French Sono d'accordo. Gli sviluppatori devono SMETTERLA di assecondare gli utenti che si rifiutano di aggiornarsi. C'è stato un tempo in cui tutti aspiravano ad avere la massima compatibilità con ogni browser conosciuto possibile, e queste cattive abitudini persistono ancora oggi. Forse quando internet smetterà di funzionare per loro, queste persone aggiorneranno a un browser moderno. A questo punto, se non sei sull'ultima versione di uno dei principali browser (IE e AOL non contano affatto), internet non dovrebbe piegarsi per te. Sinceramente IE8? Sei meno dell'1% del web, [detto alla AOL] "Arrivederci"

Per essere ancora più precisi.
Il ramo 1.x include il supporto per IE 6/7/8 mentre il ramo 2.x non lo include.
https://blog.jquery.com/2016/05/20/jquery-1-12-4-and-2-2-4-released/
