De ce folosește WordPress jQuery versiunea 1.12.4?
În timp ce verificam codul sursă, am observat că WordPress folosește jQuery v1.12.4. De ce folosește WordPress această versiune învechită de jQuery?

Există numeroase teme și pluginuri care folosesc jQuery așa cum este încărcat de nucleul WordPress. De fiecare dată când jQuery este actualizat, există riscul ca temele și pluginurile mai vechi să nu mai funcționeze (deoarece multe dintre ele sunt încă utilizate, dar nu mai sunt actualizate). De aceea vezi și jquery-migrate.js
în codul sursă. Este un script care identifică funcțiile vechi utilizate de pluginuri/teme și se asigură că acestea funcționează în continuare în versiunile mai noi ale jQuery.
Trecerea la familia jQuery 3.x
ar provoca defecțiuni la multe pluginuri/teme, deoarece nu este posibil să existe un script de migrare pentru toate elementele învechite. Acesta este motivul pentru care versiunile noi ale familiei 1.x
erau încă dezvoltate în timp ce familiile 2.x
și 3.x
existau deja. Nu vor mai exista versiuni noi ale 1.x
și 2.x
după 1.12
și 2.2
, cu excepția patch-urilor (de securitate). Deși jQuery 1.12
nu este învechit în prezent, va deveni în viitorul apropiat.
Prin urmare, WordPress se află într-o situație delicată. Dacă nu face upgrade la o versiune superioară a jQuery, nu poate ține pasul cu noile posibilități. Cu toate acestea, dacă face upgrade, site-urile vechi nu vor mai funcționa. Cel mai probabil rezultat este că WP va aștepta câțiva ani, astfel încât temele/pluginurile vechi să fie eliminate oricum, iar apoi va trece la familia 3.x
.
Clarificare
Cele de mai sus ar putea sugera că migrarea de la versiunile 1.x
la 3.x
nu este posibilă. Acest lucru nu este adevărat. Este doar puțin mai complicat. Trucul este să faci mai întâi upgrade la 1.12
, să depanezi rezultatul folosind scriptul de migrare mai vechi și apoi să adaugi scriptul de migrare 3.0
, care funcționează cu 1.12
. Instrucțiuni detaliate aici.
Actualizare de securitate
Dezvoltatorii vor observa că Google Dev Tools / Lighthouse raportează site-urile WordPress ca fiind vulnerabile din cauza prezenței acestei versiuni mai vechi a jQuery - sau așa pare. În realitate, tot ce face Lighthouse este să verifice dacă această bibliotecă are vulnerabilități menționate în Baza de date de vulnerabilități Snyk. Dacă verifici acest lucru în detaliu, vei descoperi că versiunea 1.12.4 este curată. Având în vedere utilizarea largă a versiunii 1.12.4, poți conta pe faptul că orice vulnerabilitate gravă va fi rezolvată rapid.
Actualizare privind migrarea
Trecerea la jQuery 3.x a fost realizată în WordPress 5.5 și finalizată în 5.7. Pentru cei care au nevoie în continuare de versiunea veche, există un plugin care permite revenirea la o versiune anterioară a jQuery.

Doar pentru a adăuga un pic de informație suplimentară - atât jQuery 1.x cât și 2.x au fost actualizate în mod activ până în luna mai a acestui an, diferența dintre ele a fost pur și simplu că 1.x avea compatibilitate pentru IE8, iar 2.x a eliminat patch-urile și remedierile pentru acele browsere cu probleme. Versiunea 3.x este noua versiune și merge un pas mai departe prin schimbarea diferitelor interfețe pentru a fi compatibile cu interfețele "oficiale" HTML5 / JavaScript (adică, acolo unde făcea lucrurile în același mod, acestea au devenit standard după ce jQuery avea deja versiunile sale care făceau același lucru).

- Nu este depășit
- Trecerea la versiunea 2.x sau 3.x este prea devreme, oamenii încă folosesc IE8 care este suportat doar pe versiunea 1.x

@LightnessRacesinOrbit De acord, dar din experiența mea, această întrebare este pe punctul în ceea ce privește nivelul mediu al unui dezvoltator WP.

Actualizare pentru ianuarie 2018: Ideea că este învechită, în ciuda faptului că încă este inclusă implicit în WordPress, nu mai este "o prostie". Au fost identificate vulnerabilități XSS în versiunea 1.12.4, iar ramura 1.x nu mai primește actualizări. Remedierea recomandată este actualizarea la jQuery 3.x https://snyk.io/test/npm/jquery/1.12.4?severity=high&severity=medium&severity=low

De asemenea, când folosești Lighthouse, Google îți spune că versiunea 1.12.4 conține vulnerabilități de securitate cunoscute, așa că nu ar trebui să o folosești.

Suportul pentru IE8, pe care nici Microsoft nu-l mai oferă, este în acest moment iresponsabil. Menține oamenii să folosească un browser învechit cu probleme de securitate. Dacă cineva folosește IE8, ar trebui să înceteze.

Acest răspuns și unele dintre comentarii sunt depășite. JQuery 1.x și 2.x nu mai primesc patch-uri conform paginii principale jquery.com

@DavidA.French Susțin propunerea. Dezvoltatorii trebuie să ÎNCETEZE să facă concesii pentru utilizatorii care refuză să își actualizeze browserele. A existat o perioadă când toți aspirăm la compatibilitate totală pe orice browser posibil, iar acele obiceiuri proaste încă persistă. Poate când internetul nu va mai funcționa pentru ei, acei oameni își vor actualiza la un browser modern. În acest moment, dacă nu folosești cea mai recentă versiune a unuia dintre browserele majore (IE și AOL nu se pun deloc în calcul), internetul nu ar trebui să se adapteze pentru tine. Serios, IE8? Reprezinți mai puțin de 1% din web, [spus în stil AOL] "La revedere"

Pentru a fi și mai corect.
Ramura 1.x include suport pentru IE 6/7/8, în timp ce ramura 2.x nu mai include acest suport.
https://blog.jquery.com/2016/05/20/jquery-1-12-4-and-2-2-4-released/
