我想问一个简单的问题,如果我必须检查是否安装了pliugin,该怎么办。例如,我想运行一个代码,它说,
如果安装了Gutenberg,则运行以下代码,否则不运行。
我已经创建了这段代码,但不确定这是否有效
if(defined(\'Gutenberg\')) {
}
这是正确的方法还是有其他方法。提前感谢我想问一个简单的问题,如果我必须检查是否安装了pliugin,该怎么办。例如,我想运行一个代码,它说,
如果安装了Gutenberg,则运行以下代码,否则不运行。
我已经创建了这段代码,但不确定这是否有效
if(defined(\'Gutenberg\')) {
}
这是正确的方法还是有其他方法。提前感谢检查插件是否已安装总是一个坏主意,因为插件可能已安装,但无论出于何种原因,都无法正常工作,或者以不同于您预期的方式工作。
例如,对于gutenberg来说,没有在REST API中公开的帖子类型不能由gutenberg编辑。
像往常一样,如果你有一个依赖于插件的功能,你应该钩住它的动作和过滤器,以避免猜测它是否处于活动状态(动作被“调用”的事实是活动的最佳指示),或者请插件作者添加你可能觉得有用的动作/过滤器类型。
一种可能的方法是检查是否定义了插件中包含的特定类或函数,使用class_exists()
或function_exists()
, 分别地
对于古腾堡,你可以检查register_block_type()
:
if ( function_exists( \'register_block_type\' ) ) {
// Gutenberg is available.
}
然而,我站在马克·卡普伦一边说,在大多数情况下,这不是一个好主意,如果您遵循最佳实践,甚至没有必要这样做。如果要与插件交互,则应通过挂钩和过滤器进行交互。插件是否正在运行无关紧要:如果插件不在那里,挂钩就不会运行。