问题描述
我已经在我的网站上安装了 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。