Câu trả lời:
Tôi hy vọng bạn biết những gì bạn đang làm. Bạn có thể sử dụng các hook wp_print_styles
và wp_print_scripts
hành động và sau đó lấy các biến toàn cục $wp_styles
và $wp_scripts
đối tượng trong các hook tương ứng của chúng.
Thuộc tính "đã đăng ký" liệt kê các tập lệnh đã đăng ký và thuộc tính "hàng đợi" liệt kê các tập lệnh được liệt kê trên cả hai đối tượng trên.
Một mã ví dụ để làm trống các tập lệnh và kiểu hàng đợi.
function pm_remove_all_scripts() {
global $wp_scripts;
$wp_scripts->queue = array();
}
add_action('wp_print_scripts', 'pm_remove_all_scripts', 100);
function pm_remove_all_styles() {
global $wp_styles;
$wp_styles->queue = array();
}
add_action('wp_print_styles', 'pm_remove_all_styles', 100);
Bạn cũng có thể làm điều đó trên cơ sở bằng cách tìm các trình xử lý được yêu cầu, tìm kiếm wp_enqueue_style
hoặc wp_enqueue_script
bạn có thể hủy đăng ký chúng như thế này trên của bạnfunctions.php
add_action( 'wp_print_styles', 'my_deregister_styles', 100 );
function my_deregister_styles() {
wp_deregister_style( 'some-css' );
}
add_action( 'wp_print_scripts', 'my_deregister_javascript', 100 );
function my_deregister_javascript() {
wp_deregister_script( 'tutorials-js' );
wp_deregister_script( 'gsc_dialog' );
wp_deregister_script( 'gsc_jquery' );
}
Giải pháp Hameedullah là tốt hơn, tuy nhiên nếu bạn gặp vấn đề do một số tập lệnh không tải, hãy đưa ra một cú đánh ở trên.
Xin chào, bạn cũng có thể xóa tất cả các tập lệnh này và wordpress sẽ hoạt động chính xác. Vì Wordpress cho phép bạn xóa tất cả tập lệnh và những tập lệnh mà anh ấy cần không thể xóa được. Tập lệnh âm thanh và các tập lệnh khác là tập lệnh bổ sung, vì vậy điều này sẽ không gây ra sự cố trong wordpress của bạn.
/**
* Dequeue the Parent Theme scripts or plugin.
*
* Hooked to the wp_print_scripts action, with a late priority (100),
* so that it is after the script was enqueued.
*/
function my_site_WI_dequeue_script() {
wp_dequeue_script( 'comment-reply' ); //If you're using disqus, etc.
wp_dequeue_script( 'jquery_ui' ); //jQuery UI, no thanks!
wp_dequeue_script( 'fancybox' ); //Nah, I use FooBox
wp_dequeue_script( 'wait_for_images' );
wp_dequeue_script( 'jquery_easing' );
wp_dequeue_script( 'swipe' );
wp_dequeue_script( 'waypoints' );
}
add_action( 'wp_print_scripts', 'my_site_WI_dequeue_script', 99 );
Phương pháp của Hameedullah rất hữu ích, tuy nhiên nếu bạn chỉ muốn nó hoạt động ở mặt trước của trang web (ví dụ: không phải bảng điều khiển WordPress của bạn), bạn cần thêm một điều kiện để buộc nó phải bảo lãnh sớm.
Tôi đang sử dụng một kiểm tra được đề cập trong câu hỏi này cùng với is_admin()
để làm điều này.
function pm_remove_all_scripts(){
if(in_array($GLOBALS['pagenow'], ['wp-login.php', 'wp-register.php']) || is_admin()) return; //Bail early if we're
global $wp_scripts;
$wp_scripts->queue = array();
}
add_action('wp_print_scripts', 'pm_remove_all_scripts', 100);
function pm_remove_all_styles(){
if(in_array($GLOBALS['pagenow'], ['wp-login.php', 'wp-register.php']) || is_admin()) return; //Bail early if we're
global $wp_styles;
$wp_styles->queue = array();
}
add_action('wp_print_styles', 'pm_remove_all_styles', 100);