【问题标题】:Wordpress: How to check is plugin active?Wordpress:如何检查插件是否处于活动状态?
【发布时间】:2018-01-15 05:02:17
【问题描述】:

如何检查插件在 WordPress 中是否处于活动状态。我已经安装了easy-digital-downloads(edd)。在目录中:/wp-content/plugins/easy-digital-downloads,插件文件在/wp-content/plugins/easy-digital-downloads/easy-digital-downloads.php。 我试过了,我知道插件是活动的。:

if (is_plugin_active(get_home_url() . '/wp-content/plugins/easy-digital-downloads/easy-digital-downloads.php')) {
  echo 'plugin is active';
} else {
  echo 'plugin is not active';
}

上面的代码显示“插件未激活”但插件已激活。

我认为问题在于我的插件地址目录。

【问题讨论】:

  • 你把它挂在哪里了?
  • 对不起。我不明白你的评论。
  • is_plugin_active 函数必须与 admin_init 或后续操作挂钩

标签: php wordpress plugins


【解决方案1】:

你不需要完整的 url,只需要插件目录中主插件文件的路径。

function check_plugin_state(){
    if (is_plugin_active('easy-digital-downloads/easy-digital-downloads.php')){
     echo 'plugin is active';
   }else{
    echo 'plugin is not active';
   }
}
add_action('admin_init', 'check_plugin_state');

注意:如果你想在前端添加这个,不要忘记添加include_once( ABSPATH . 'wp-admin/includes/plugin.php' );

【讨论】:

    【解决方案2】:

    除了使用 WordPress 函数 is_plugin_active(),还可以使用 PHP 原生函数 class_exists()

    在您的情况下,您必须传递 Easy Digital Downloads 主类名称,即 Easy_Digital_Downloads。所以,你必须写

    if(class_exists('Easy_Digital_Downloads')){
       echo 'plugin is active';
    }else{
       echo 'plugin is not active';
    }
    

    另外,您可以使用 PHP 原生函数 function_exists()。您必须将 Easy Digital Downloads 主函数​​ EDD() 作为参数传递。 EDD() 函数用于实例化 Easy Digital Downloads 插件的主类。所以,你可以写

    if(function_exists('EDD')){
       echo 'plugin is active';
    }else{
       echo 'plugin is not active';
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-11
      • 2019-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-06
      • 1970-01-01
      相关资源
      最近更新 更多