Podczas sprawdzania kodu źródłowego zauważyłem, że WordPress używa jQuery v1.12.4. Dlaczego WordPress korzysta z tej przestarzałej wersji jQuery?
Podczas sprawdzania kodu źródłowego zauważyłem, że WordPress używa jQuery v1.12.4. Dlaczego WordPress korzysta z tej przestarzałej wersji jQuery?
Odpowiedzi:
Istnieje wiele motywów i wtyczek korzystających z jQuery ładowanych przez rdzeń WP. Za każdym razem, gdy jQuery jest aktualizowany, istnieje ryzyko uszkodzenia starszych motywów i wtyczek (ponieważ wiele z nich jest nadal używanych, ale nie jest już aktualizowanych). Dlatego też widzisz jquery-migrate.js
w swoim kodzie źródłowym. Jest to skrypt, który przechwytuje stare funkcje używane przez wtyczki / motywy i upewnia się, że nadal działają w nowszych wersjach jQuery.
Przejście do 3.x
rodziny jQuery spowodowałoby uszkodzenie wielu wtyczek / motywów, ponieważ nie można mieć skryptu migracji dla wszystkiego, co jest przestarzałe. Właśnie dlatego 1.x
wciąż rozwijano nowe wersje rodziny, podczas gdy rodziny 2.x
i 3.x
już istniały. Nie będzie nowych 1.x
i 2.x
wersji po 1.12
i 2.2
, z wyjątkiem łatek (bezpieczeństwa). Chociaż jQuery 1.12
nie jest obecnie nieaktualny, będzie w najbliższej przyszłości.
WordPress jest w związku. Jeśli nie zaktualizuje się do wyższej wersji jQuery, nie będzie w stanie nadążyć za nowymi możliwościami. Jeśli jednak nastąpi aktualizacja, starsze witryny ulegną awarii. Najbardziej prawdopodobnym rezultatem jest to, że WP zaczeka kilka lat, więc starsze motywy / wtyczki i tak zostaną wycofane, a następnie przejdą do 3.x
rodziny .
Wyjaśnienie
Powyższe może sugerować, że migracja z 1.x
wersji do 3.x
nie jest w rzeczywistości możliwa. To nieprawda. To tylko trochę skomplikowane. Sztuczka polega na tym, aby najpierw uaktualnić 1.12
, debugować wynik za pomocą starszego skryptu migracji, a następnie dodać 3.0
skrypt migracji, który działa 1.12
. Szczegółowe instrukcje tutaj .
Aktualizacja bezpieczeństwa
Programiści zauważą, że Google Dev Tools / Lighthouse zgłasza witryny WordPress jako podatne na atak ze względu na obecność tej starszej wersji jQuery - a przynajmniej tak się wydaje. W efekcie wszystko, co robi Lighthouse, polega na sprawdzeniu, czy w bibliotece znajdują się luki wymienione w bazie danych luk Snyk . Jeśli sprawdzisz to szczegółowo, przekonasz się, że wersja 1.12.4 jest czysta. Biorąc pod uwagę szerokie zastosowanie 1.12.4, możesz liczyć na szybkie usunięcie poważnej luki w zabezpieczeniach.
Aby być jeszcze bardziej poprawnym.
Gałąź 1.x zawiera obsługę IE 6/7/8, a gałąź 2.x nie.
https://blog.jquery.com/2016/05/20/jquery-1-12-4-and-2-2-4-released/