問題描述
我已經在我的網站上安裝了 Google Analyticator plugin 。我還使用 MobilePress plugin 來為 non-smart-phone 移動瀏覽器設計的主題。我已經設置了 Google Analytics for Mobile 用於此主題,並希望禁用 Analyticator 插件,因為它包含一個更大的 js 文件的調用。
有人知道是否可以使用 functions.php 或其他方法禁用插件?
我相信我已經找到了向頁面添加功能的代碼,所以如果無法禁用整個插件,是否可以停止執行的操作?我試圖直接禁用它們,沒有運氣。這是插件文件中的代碼:
add_action('wp_head', 'add_google_analytics', 999999);
add_action('init', 'ga_outgoing_links');
我試圖刪除這些行動:
remove_action('wp_head','add_google_analytics',9999999);
remove_action('init', 'ga_outgoing_links');
任何幫助是極大的讚賞。
最佳解決方案
當 WordPress 激活一個插件時,它會調用 activate_plugin()函數。此功能可在沙箱中激活該插件,並在其他地方重定向成功。幾個作者使用它來編程地激活插件依賴。
還有另一個功能,deactivate_plugin(),反過來做類似的事情,它實際上是當您點擊”deactivate” 或”disable.” 時,WordPress 如何停用 plug-ins
要停用已安裝的插件,只需調用:
deactivate_plugins( '/plugin-folder/plugin-name.php' );
或者,一次停用多個插件:
deactivate_plugins( array( '/first-plugin/first.php', '/second-plugin/second.php' ) );
有一個第二個參數 (第一個是要禁用的插件的字符串或數組),允許您禁用插件而不調用停用掛接。默認情況下,它設置為 false,我建議您這樣做。除非由於某種原因你想繞過去激活,否則你會做:
deactivate_plugins( '/plugin-folder/plugin-name.php', true );
這將只是關閉插件,但它不會啓動任何插件註冊做停用。因此,如果插件在停用時刪除選項或數據庫表,則需要執行 「靜默」 停用以保留該信息並在其他位置使用它。
-
Some documentation 從 「HitchHacker 的指南」 通過 WordPress
次佳解決方案
這是感謝上面的 EAMAN 的輝煌的回答,我以為這可能對原來的海報也有幫助嗎?
我需要一個解決方案,以確保用户停用我的插件,如果他們上傳了高級版本 (以避免潛在的衝突) 。以前,我使用 is_plugin_active 檢測到狀態,並顯示管理錯誤消息,提示用户將其關閉。這是更平穩…
function deactivate_plugin_conditional() {
if ( is_plugin_active('plugin-folder/plugin-name.php') ) {
deactivate_plugins('plugin-folder/plugin-name.php');
}
}
add_action( 'admin_init', 'deactivate_plugin_conditional' );
注意:register_activation_hook 似乎沒有起作用,但 admin_init 的作用就像一個魅力。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。