- shares
- Facebook Messenger
- Gmail
- Viber
- Skype
Khi thiết kế theme mới, bạn không tránh khỏi lỗi xung đột jquery, cái mà thông báo lỗi mầu đỏ:
$ is not defined
Uncaught TypeError: undefined is not a function.
Fix xung đột jquery
Bạn nhấn vào liên kết tại dòng có lỗi, sẽ biết chính xác lỗi ở đâu. Nôm na là lỗi khi gọi hàm của jquery, kiểu như thế này.
$(xxx).methodName(..)
Vậy phải làm sao? Giải pháp đầu tiên, bạn thử thêm hàm này vào trước dòng báo lỗi:
jQuery.noConflict();
Nếu không được, hãy thử thay thế thư viện file jquery khác. Các bạn có thể link trực tiếp vào host của thằng jquery hoặc thằng google mà chơi cũng được.
http://code.jquery.com/jquery-1.11.1.min.js
http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
Muốn chèn phiên bản khác bạn có thể vào trang chủ của nó: http://jquery.com/download/
Nếu cách trên vẫn không ổn, thì thử cách này. Trước hết chạy thử các file html được rip về xem các tính năng javascript và jquery nó hoạt động không. Nếu hoạt động tốt thì là do thừa jquery trong website, mặc định wordpress load jquery có trong gói wordpress.org. Để xóa jquery mặc định trong wordpress, chúng ta chèn thêm đoạn sau vào functions.php
function myinit(){ if(!is_admin()) wp_deregister_script('jquery'); } add_action('init','myinit');
Nhớ là chỉ xóa jquery ở frontend, đừng xóa ở admin.
Và có thể thay thế file jquery khác.
add_action('init','myinit'); function myinit(){ // Drop this in functions.php or your theme if( !is_admin()){ wp_deregister_script('jquery'); wp_register_script('jquery', ("http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"), false, '1.3.2'); wp_enqueue_script('jquery'); } }
Chúc bạn thành công!
Hãy cho mình biết suy nghĩ của bạn trong phần bình luận bên dưới bài viết này. Hãy theo dõi kênh chia sẻ kiến thức WordPress của Hoangweb trên Twitter và Facebook
- shares
- Facebook Messenger
- Gmail
- Viber
- Skype