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.jsw 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.xrodziny 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.xwciąż rozwijano nowe wersje rodziny, podczas gdy rodziny 2.xi 3.xjuż istniały. Nie będzie nowych 1.xi 2.xwersji po 1.12i 2.2, z wyjątkiem łatek (bezpieczeństwa). Chociaż jQuery 1.12nie 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.xrodziny .
Wyjaśnienie
Powyższe może sugerować, że migracja z 1.xwersji do 3.xnie 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.0skrypt 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/