无法检查插件是否处于活动状态

时间:2015-04-25 作者:Johann

我正在使用ACF处理自定义主题。我想检查插件是否处于活动状态。我正在使用此代码:

<?php include_once( ABSPATH . \'wp-content/plugins/advanced-custom-fields-pro/acf.php\' ); 
if ( is_plugin_active( \'advanced-custom-fields-pro/acf.php\' ) ) {

echo "hi";

} ?>
但是,我遇到以下错误:

致命错误:对未定义函数的调用是/Users/johann/htdocs/clarity\\uv21/wp-content/themes/clarity/templates/header中的\\u plugin\\u active()。php第21行

有什么想法吗?有什么问题吗?

所以根据我提供的答案:

if( class_exists(\'acf\') ) { 

  if (($header_style)==\'style2\') {

}
成功了!因此,基本上解决方案是尝试找到一个与您尝试检查的插件相关的类。在本例中,“acf”类特定于高级自定义字段插件,仅当插件处于活动状态时,才允许我运行条件。

2 个回复
最合适的回答,由SO网友:Behzad 整理而成

Try to check class_exists:

<?php 
     if( class_exists(\'acf\') ) {
        echo "hi";
     }
?>
SO网友:Sumit

is_plugin_active() 仅在管理区内可用。您需要包括核心plugin.php 使用此功能的前端文件。

来自WordPressdocumentation

注:在wp admin/INCLUDE/plugin中定义。php,因此这只能从admin页面中获得,对该函数的任何引用都必须连接到admin\\u init或更高的操作。如果您想在模板中使用此功能,则需要手动要求插件。php,下面是一个示例。

所以它会像

<?php include_once( ABSPATH . \'wp-admin/includes/plugin.php\' ); 
if ( is_plugin_active( \'advanced-custom-fields-pro/acf.php\' ) ) {
    echo "hi";
} ?>

结束

相关推荐

WP-Includes/Comment-template.php:26-正在尝试获取非对象的属性

我在调试新站点时收到此通知。有人知道这意味着什么吗?它不会破坏网站,但当我打开调试模式时,它只是一个警告,我想解决这个问题。此通知仅在“注释”选项可用时显示。当您打开一个帖子页面,并且评论已通过仪表板关闭时,不会显示此通知。这是我得到的“错误”:注意:wp包含/注释模板。php:26-尝试获取非对象的属性require(\'wp-blog-header.php\')、require\\u once(\'wp-includes/template loader.php\')、include(\'/themes

无法检查插件是否处于活动状态 - 小码农CODE - 行之有效找到问题解决它

无法检查插件是否处于活动状态

时间:2015-04-25 作者:Johann

我正在使用ACF处理自定义主题。我想检查插件是否处于活动状态。我正在使用此代码:

<?php include_once( ABSPATH . \'wp-content/plugins/advanced-custom-fields-pro/acf.php\' ); 
if ( is_plugin_active( \'advanced-custom-fields-pro/acf.php\' ) ) {

echo "hi";

} ?>
但是,我遇到以下错误:

致命错误:对未定义函数的调用是/Users/johann/htdocs/clarity\\uv21/wp-content/themes/clarity/templates/header中的\\u plugin\\u active()。php第21行

有什么想法吗?有什么问题吗?

所以根据我提供的答案:

if( class_exists(\'acf\') ) { 

  if (($header_style)==\'style2\') {

}
成功了!因此,基本上解决方案是尝试找到一个与您尝试检查的插件相关的类。在本例中,“acf”类特定于高级自定义字段插件,仅当插件处于活动状态时,才允许我运行条件。

2 个回复
最合适的回答,由SO网友:Behzad 整理而成

Try to check class_exists:

<?php 
     if( class_exists(\'acf\') ) {
        echo "hi";
     }
?>
SO网友:Sumit

is_plugin_active() 仅在管理区内可用。您需要包括核心plugin.php 使用此功能的前端文件。

来自WordPressdocumentation

注:在wp admin/INCLUDE/plugin中定义。php,因此这只能从admin页面中获得,对该函数的任何引用都必须连接到admin\\u init或更高的操作。如果您想在模板中使用此功能,则需要手动要求插件。php,下面是一个示例。

所以它会像

<?php include_once( ABSPATH . \'wp-admin/includes/plugin.php\' ); 
if ( is_plugin_active( \'advanced-custom-fields-pro/acf.php\' ) ) {
    echo "hi";
} ?>