Trong khi kiểm tra mã nguồn, tôi thấy rằng WordPress sử dụng jQuery v1.12.4. Tại sao WordPress sử dụng phiên bản jQuery lỗi thời này?
Trong khi kiểm tra mã nguồn, tôi thấy rằng WordPress sử dụng jQuery v1.12.4. Tại sao WordPress sử dụng phiên bản jQuery lỗi thời này?
Câu trả lời:
Có nhiều chủ đề và plugin sử dụng jQuery như được tải bởi lõi WP. Mỗi khi jQuery được cập nhật, sẽ có nguy cơ các chủ đề và plugin cũ bị phá vỡ (vì rất nhiều trong số chúng vẫn được sử dụng nhưng không còn được cập nhật nữa). Đó là lý do tại sao bạn cũng thấy jquery-migrate.js
trong mã nguồn của mình. Đó là một tập lệnh bắt các hàm cũ được sử dụng bởi các plugin / chủ đề và đảm bảo rằng chúng vẫn hoạt động trong các phiên bản jQuery mới hơn.
Chuyển sang họ jQuery 3.x
sẽ khiến nhiều plugin / chủ đề bị phá vỡ, vì không thể có tập lệnh di chuyển cho mọi thứ bị phản đối. Đây là lý do tại sao các phiên bản mới của 1.x
gia đình vẫn đang được phát triển trong khi 2.x
và các 3.x
gia đình đã tồn tại. Sẽ không có phiên bản mới 1.x
và2.x
sau 1.12
và 2.2
ngoại trừ các bản vá (bảo mật). Mặc dù jQuery 1.12
không bị lỗi thời ngay bây giờ, nhưng nó sẽ có trong tương lai gần.
Vì vậy, WordPress là trong một ràng buộc. Nếu nó không nâng cấp lên phiên bản jQuery cao hơn, nó không thể theo kịp các khả năng mới. Tuy nhiên, nếu nó nâng cấp, các trang web cũ hơn sẽ bị hỏng. Kết quả rất có thể là WP sẽ chờ trong một vài năm, do đó, các chủ đề / plugin cũ hơn sẽ bị loại bỏ bằng mọi cách, và sau đó chuyển đến 3.x
gia đình .
Làm rõ
Ở trên có thể gợi ý rằng việc di chuyển từ 1.x
các phiên bản sang 3.x
thực tế là không thể. Đo không phải sự thật. Nó chỉ là một chút phức tạp. Mẹo đầu tiên là nâng cấp lên 1.12
, gỡ lỗi kết quả bằng cách sử dụng tập lệnh di chuyển cũ hơn và sau đó thêm 3.0
tập lệnh di chuyển, hoạt động với 1.12
. Hướng dẫn chi tiết tại đây .
Cập nhật bảo mật
Các nhà phát triển sẽ nhận thấy rằng Google Dev Tools / Ngọn hải đăng báo cáo các trang web WordPress dễ bị tổn thương do sự hiện diện của phiên bản jQuery cũ hơn này - hoặc có vẻ như vậy. Trên thực tế, tất cả các ngọn hải đăng đều kiểm tra xem thư viện này có lỗ hổng được đề cập trong Cơ sở dữ liệu lỗ hổng Snyk hay không . Nếu bạn kiểm tra chi tiết này, bạn sẽ thấy phiên bản 1.12.4 sạch. Với việc sử dụng rộng rãi 1.12.4, bạn có thể tin tưởng vào bất kỳ lỗ hổng nghiêm trọng nào đang được xử lý nhanh chóng.
Để được chính xác hơn.
Chi nhánh 1.x bao gồm hỗ trợ cho IE 6/7/8 và chi nhánh 2.x thì không.
https://blog.jquery.com/2016/05/20/jquery-1-12-4-and-2-2-4-release/