2011-07-21 34 views
21

Có ai biết phương pháp thực sự hiệu quả để tắt plugin (đang hoạt động) trên một trang cụ thể không? Có một số plugin không thực sự cần thiết trong một số trang của trang web và chúng có nhiều tệp CSS và JavaScript làm chậm tốc độ tải trang web và đôi khi có thể xung đột với các tệp khác.Wordpress Vô hiệu hóa Plugin trên các trang/bài đăng cụ thể

Tôi biết rằng tôi có thể gây rối với mã của plugin, v.v. nhưng nó không thực sự hiệu quả.

Bất kỳ ý tưởng nào?

Cảm ơn trước!

Trả lời

-5

Bạn cần chỉnh sửa mã của plugin. WordPress không cung cấp chức năng bạn đang tìm kiếm.

5

Kiểm tra đầu tiên, nếu plugin bạn muốn xóa không có menu tùy chọn nơi bạn đặt các trang cần loại trừ.

Thứ hai là, tìm kiếm móc hành động plugin của bạn cho ví dụ:

add_action('wp_head', 'easy_fancybox', 999); 

Đây là một ví dụ từ dễ Plugin Fancybox mà móc để tiêu đề wordpress. Để loại bỏ nó, tôi đặt chức năng này trong functions.php và trước khi bất kỳ trường hợp wp_head(); được gọi là:

function remove_easy_fancybox() { 

    remove_action('wp_head', 'easy_fancybox_enqueue_styles'); 
    remove_action('wp_head', 'easy_fancybox_enqueue_scripts'); 
    remove_action('wp_head', 'easy_fancybox'); 

    wp_dequeue_script('jquery.fancybox'); 
    wp_dequeue_script('jquery.easing'); 
    wp_dequeue_script('jquery.mousewheel'); 
    wp_dequeue_script('jquery.metadata'); 
} 

add_action('wp_head', 'remove_easy_fancybox', 1); 
34

thử "Plugin Organizer" Wordpress Plugin bởi Jeff Sterup. Bạn phải bật "Tải Plugin Chọn lọc" trong cài đặt của nó (đảm bảo tuân theo chỉ dẫn của chúng để bật nó)

Sau đó, trong trình chỉnh sửa bài đăng/trang của bạn có một hộp bên dưới cửa sổ soạn thảo có hộp chọn để tắt bất kỳ plugin cụ thể nào cho trang đó

đưa tôi có thể hơn 20 tìm kiếm kho lưu trữ Google và Wordpress để cuối cùng tìm được giải pháp đơn giản. Hi vọng nó có ích cho bạn!

+1

Công trình này! Phương pháp hoạt động tốt đối với tôi là vô hiệu hóa plugin trên toàn cầu, sau đó bật cụ thể cho các trang/bài đăng cần có. Điều này giảm xuống khi tải mà không cần thiết trên các trang/bài viết mà không cần nó. Cảm ơn Jesse B!/upvote –

+0

Đây là liên kết plugin: https://wordpress.org/plugins/plugin-organizer - Tôi cũng đề nghị điều này với P3. Chỉ cần kiểm tra nó ra ở đây: https://wordpress.org/plugins/p3-profiler/ –

+0

Nhưng tôi muốn các plugin được tải trong trang quản trị .... và không phải trong wp-admin/admin-ajax.php Làm thế nào tôi có thể làm điều đó? @KevinWorthington – Revious

6

Tôi biết nó cũ nhưng chủ đề này chính xác là những gì tôi cần.

Thông báo trước để trả lời numediaweb của là xóa tác vụ đòi hỏi sự ưu tiên giống như hành động add

Móc trong plugin

add_action('wp_print_styles', 'easy_fancybox_enqueue_styles', 999); 
add_action('wp_enqueue_scripts', 'easy_fancybox_enqueue_scripts', 999); 
add_action('wp_head', 'easy_fancybox', 999); 

Mã để gỡ lưỡi câu

function remove_easy_fancybox() { 

    global $post; 
    $ids = array(12,34,55); 
    if(in_array($post->ID,$ids)): 
      remove_action('wp_print_styles', 'easy_fancybox_enqueue_styles', 999); 
      remove_action('wp_enqueue_scripts', 'easy_fancybox_enqueue_scripts',999); 
      remove_action('wp_head', 'easy_fancybox', 999); 

      wp_dequeue_script('jquery.fancybox'); 
      wp_dequeue_script('jquery.easing'); 
      wp_dequeue_script('jquery.mousewheel'); 
      wp_dequeue_script('jquery.metadata'); 
    endif; 
} 

add_action('wp_head', 'remove_easy_fancybox', 1); 

Từ http://codex.wordpress.org/Function_Reference/remove_action

Quan trọng: Để xóa móc, đối số $ function_to_remove và $ priority phải khớp khi móc được thêm vào. Điều này xảy ra cho cả bộ lọc và hành động . Không có cảnh báo nào được đưa ra về lỗi xóa.

Tôi đã bao gồm câu lệnh if của mình để chỉ chạy tác vụ trên các id bài đăng cụ thể, nghĩ rằng nó có thể hữu ích.

+0

Điều này làm việc kỳ diệu cho tôi trong một tình huống ở nơi tôi cần phải loại bỏ một chức năng bổ sung từ bất cứ thứ gì đó là một trang, sử dụng 'is_page()'. –

11

Here is the idea.

add_filter('option_active_plugins', 'lg_disable_cart66_plugin'); 

function lg_disable_cart66_plugin($plugins){ 

     if(strpos($_SERVER['REQUEST_URI'], '/store/') === FALSE AND strpos($_SERVER['REQUEST_URI'], '/wp-admin/') === FALSE) { 
     $key = array_search('cart66/cart66.php' , $plugins); 
     if (false !== $key) unset($plugins[$key]); 
     } 

    return $plugins; 
} 
+1

Đẹp, cung cấp cho bạn sự hiểu biết về cách plugin "Plugin tổ chức" được đề cập bởi @Jesse B hoạt động. – codewaggle

+0

Đây phải là câu trả lời được chấp nhận, thực sự rõ ràng và chỉ yêu cầu một đoạn mã nhỏ. IMO cài đặt plugin như trình tổ chức plugin quá mức so với giải pháp gọn gàng này. Cảm ơn rất nhiều! –

+0

Tôi tìm thấy giải pháp này cũng [ở đây] (https://kinsta.com/blog/disable-wordpress-plugins/) Nhưng điều này không ngăn chặn các plugin từ enqueueing tất cả các kịch bản và phong cách của nó. Tôi đã thử phương pháp này hủy kích hoạt Divi Builder Plugin, bổ sung thêm các kịch bản vào trang, nhưng tôi chỉ cần nó vào những dịp nhất định. Cũng không làm việc với Contact Form 7. Bất kỳ trợ giúp nào? –

Các vấn đề liên quan