Một trong những vấn đề nổi bật khi bạn muốn dùng jQuery version mới 3.x cùng các thư viện, nhưng hiện tại phiên bản trên WordPress là jQuery 1.x. Bạn sẽ xử lý như thế nào?
Tại sao jQuery version 1.x vẫn dùng trên WordPress?
Quá trình phát triển của WordPress gắn liền với jQuery và có nhiều thứ được làm rất lâu, nên việc thay thế bằng phiên bản jQuery mới nhất có thể ảnh hưởng tới core.
Làm cách nào bạn chuyển jQuery version cho WordPress?
Hãy cân nhắc một tình huống:
Bạn cần chạy 1 thư viện với yêu cầu là chạy cùng jQuery 3.x. Bạn sẽ làm thế nào để nó chạy được khi jQuery trên WordPress mặc định đang là 1.x?
Cách nhiều người thường làm là gọi thêm script đăng ký jQuery 3.x vào trong frontend web. Tuy vậy, về mặt kĩ thuật thì rõ ràng sử dụng hai version jQuery cùng lúc là rất xung đột.
Ta cần một phương án tối ưu và “thuần WordPress” – tức làm theo đúng cách mà WordPress cung cấp, để hạn chế các bug tối đa.
Khi đó, ta nói đến các phương thức:
is_admin()
Check xem đang ở trong Dashboard quản trị hay ngoài website.
wp_deregister_script
Phương thức này giúp bỏ đăng ký 1 core script nào đó của WordPress
wp_register_script
Phương thức này ngược lại, giúp đăng ký 1 core script vào trong WordPress
wp_enqueue_script
Phương thức này quen hơn, là nhét script vào chạy trong WordPress
Cách đăng ký jQuery version khác
Ta cần tác động vào action init
như sau trong file functions.php
. Ở đây mình lấy ví dụ là version jQuery mới nhất 3.3.1 nhé:
function change_jquery_version() { if (!is_admin()) { wp_deregister_script('jquery'); wp_register_script('jquery', 'https://code.jquery.com/jquery-3.3.1.min.js', false, '3.3.1'); wp_enqueue_script('jquery'); } } add_action('init', 'change_jquery_version');
Nào, giờ bạn hãy thử mở website ra và view source để xem có phải phiên bản jQuery 3.3.1 đang được load trên website của bạn không nhé.
Giám đốc tại Công ty CP CODE TỐT. Quản lý ngôn ngữ bản địa tiếng Việt tại WordPress. Là tác giả chính tại codetot.net, Khôi muốn ghi lại một sốvấn đề kỹ thuật trong quá trình phát triển các dự án website với khách hàng.
Khó hiểu ghê
Bạn thấy khó hiểu phần nào?
Nhanh gọn, là cái em đang tìm.