有誰知道一個真正有效的方法來禁用特定頁面上的插件(即活動)嗎?有些插件在網站的某些頁面中並不真正需要,它們有很多CSS和JavaScript文件會降低網站的加載速度,有時可能與其他文件發生衝突。Wordpress禁用特定頁面/帖子上的插件
我知道我可以搞砸插件的代碼等,但它不是真的有效。
任何想法?
在此先感謝!
有誰知道一個真正有效的方法來禁用特定頁面上的插件(即活動)嗎?有些插件在網站的某些頁面中並不真正需要,它們有很多CSS和JavaScript文件會降低網站的加載速度,有時可能與其他文件發生衝突。Wordpress禁用特定頁面/帖子上的插件
我知道我可以搞砸插件的代碼等,但它不是真的有效。
任何想法?
在此先感謝!
您需要編輯插件的代碼。 WordPress不提供您正在尋找的功能。
首先檢查,如果您要刪除的插件沒有選項菜單,您可以在其中設置要排除的頁面。
二是,看你的插件行動掛鉤例如:
add_action('wp_head', 'easy_fancybox', 999);
這是掛接到WordPress頭容易的fancybox插件的例子。要刪除它,我把這個功能在你functions.php
和wp_head();
任何實例之前被稱爲:
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);
嘗試「插件管理器」 WordPress插件傑夫施特魯普。您必須在其設置下啓用「選擇性插件加載」(請確保遵循其啓用它的指示)
然後在您的文章/頁面編輯器中,在撰寫窗口下方有一個框,其中包含用於禁用任何特定插件的複選框對於該頁面
花了我20多個Google和Wordpress插件存儲庫搜索最終找到一個簡單的解決方案。希望它也適用於你!
我知道它很老,但這個線程正是我所需要的。
唯一需要注意numediaweb的回答是,刪除操作需要相同的優先級附加動作
鉤子插件
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);
代碼刪除的鉤
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);
從http://codex.wordpress.org/Function_Reference/remove_action
重要提示:要刪除掛鉤,$ function_to_remove和$ priority參數必須匹配時添加掛鉤。這適用於 過濾器和操作。移除失敗時不會發出警告。
我已經包含了我的if語句,只對特定的帖子ID運行該操作,認爲它可能會有所幫助。
在我需要使用'is_page()'從任何頁面中刪除插件功能的情況下,這對我來說很神奇。 –
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;
}
不錯,讓你瞭解@Jesse B提到的「Plugin Organizer」插件是如何工作的。 – codewaggle
這應該是被接受的答案,非常乾淨,只需要一小段代碼。與這個整潔的解決方案相比,安裝像插件管理器這樣的插件的IMO是矯枉過正的。非常感謝! –
我發現這個解決方案也在[這裏](https://kinsta.com/blog/disable-wordpress-plugins/)但是這並不妨礙插件排入其所有腳本和樣式。我試過這種方法去激活Divi Builder Plugin,這會在頁面中添加大量腳本,但我只是在某些場合需要它。也不能使用聯繫表單7.任何幫助? –
This Works!對我來說運行良好的方法是全局禁用插件,然後特別啓用需要它的頁面/帖子。這可以減少在不需要的頁面/帖子上不必要地加載該開銷。謝謝Jesse B!/upvote –
這裏是插件鏈接:https://wordpress.org/plugins/plugin-organizer - 我也推薦這與P3。只需在這裏查看:https://wordpress.org/plugins/p3-profiler/ –
但我希望插件被加載到管理頁面中......而不是在wp-admin/admin-ajax.php中我怎樣才能做到這一點? @KevinWorthington – Revious