Home » 开发 » WordPress 检测某个插件是否已经启用

WordPress 检测某个插件是否已经启用

我们在开发主题时经常需要知道是否启用了某个插件,方法如下:
1. 使用 is_plugin_active() 进行检测

有些时候,is_plugin_active() 没办法检测到插件,你可能需要在前面导入WordPress的 plugin.php 文件,样例如下

2.检测 Class 是否存在(class_exists)

3.检测命名常量是否已定义

可以使用 defined 检测插件的命名常量(Named Constant)是否已定义(defined)。比如检测是否定义了 NextGen 插件的 NEXTGEN_GALLERY_PLUGIN_VERSION 常量,如果已定义,说明该插件已启用,接着再检测 NextGen 版本是否 大于或等于 2.0.0 :

4.检测函数名是否存在

可以使用 function_exists 函数检测插件特有的某个函数名是否存在,比如检测 Hello Dolly 插件特有的函数名 hello_dolly_get_lyric 是否存在:

小结

1.is_plugin_active() 需要知道插件的安装目录和主文件,通常情况下,这是比较可靠的。但是如果有人通过FTP上传安装插件时,修改了插件的文件夹名称,就没办法了,当然,这只是概率很低的情况。
2.通过 class_exists 检测插件特有的类(class)是否存在,也是非常可靠的。因为一个插件一旦添加了某个类,是基本不会再修改的。麻烦一点的是,你需要浏览插件的源代码找到是否存在独一无二的类。
3.通过 defined 检测插件的命名常量是否存在,以及比对常量值,这个方法可以检测到插件的版本号,这样,如果用户使用的插件版本太低,就可以进行相关提示。
4.通过 function_exists 检测某个插件特有的函数是否存在,也是可行的,但是如果开发者修改了该函数名,就行不通了。
所以,具体要选择什么方法,根据自己的需要进行选择吧。

参考资料:http://themergency.com/wordpress-tip-how-to-check-if-a-plugin-is-active/

雨田

一个喜欢折腾wordpress的爱好者,希望与大家一起探讨wp技术!