Làm cách nào tôi có thể hủy đăng ký TẤT CẢ tất cả các kiểu cùng một lúc? Và giống với Javascript?


8

Làm thế nào tôi có thể có được tất cả các phong cách hoặc kịch bản mê hoặc và sau đó hủy đăng ký tất cả chúng cùng một lúc?

Câu trả lời:


24

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_styleswp_print_scriptshành động và sau đó lấy các biến toàn cục $wp_styles$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);

Lol, tôi đang học những gì tôi đang làm ... hehe. Nhưng cảm ơn, đó chính xác là những gì tôi cần. Tôi đang cố gắng thu nhỏ tất cả các tập lệnh, gắn chúng lại với nhau trong một tệp và chỉ xử lý tệp mới. : D
trusktr

Tôi biết đã có plugin cho việc này rồi, nhưng cuối cùng họ luôn phá vỡ trang web của tôi bằng cách này hay cách khác, vì vậy thực hiện thủ công là một tùy chọn. : D
trusktr

Vậy tại sao nói với nó để chấp nhận chính xác 100 đối số?
trusktr

1
100 đó thực sự là ưu tiên để các hàm được nối được gọi sau khi tất cả các hàm được nối với wp_print_ststyle hoặc wp_print_scripts được gọi.
Hameedullah Khan

Ồ, gotcha! Để cung cấp bổ sung, vv, một cơ hội để đăng ký tất cả các tập lệnh của họ.
trusktr

5

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_stylehoặc wp_enqueue_scriptbạ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.


1

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 );

0

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);
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.