有没有办法确定是否刚刚安装了WordPress插件?

时间:2011-10-12 10:55:42

标签: plugins wordpress-plugin wordpress

我想知道是否有任何方法可以知道插件是否已安装。我不在乎它是否已经激活,但只有安装了该插件!

你知道有什么好办法吗?

我必须更具体。我知道在哪里可以找到插件,我知道如何安装可以看到。问题是,如果有任何编程方式来检查插件是否已安装。

ie:WordPress为我们提供register_activation_hook()以在插件激活时进行我们喜欢的任何操作,但是没有任何相关的插件安装挂钩。有没有办法确定插件的安装?

2 个答案:

答案 0 :(得分:10)

这是迄今为止我发现的最佳方式:(这是从WP 3.5开始编写的)

信息:

使用register_activation_hook时要记住的主要事情是,在点击wp-admin / plugins.php中的激活链接并看到插件被激活之后,它被称为中间页面。我发现了这个在我尝试使用从Activate链接发送的$_GET变量之后。如果你仔细查看你点击的链接,你最终得到的链接会略有不同。这就是您无法在add_action(), do_action() or add_filter()触发器中使用register_activation_hook(),..的原因。一旦插件被激活,它会立即重定向。

解决方案:

然而,您可以在钩子过程中使用add_option,如此

/* Main Plugin File */
...
register_activation_hook( __FILE__, function() {
  add_option('Activated_Plugin','Plugin-Slug');
  /* activation code here */
});

add_action('admin_init','load_plugin');
function load_plugin() {
    if(is_admin()&&get_option('Activated_Plugin')=='Plugin-Slug') {
     delete_option('Activated_Plugin');
     /* do some stuff once right after activation */
    }
}

这应该让你开始......

答案 1 :(得分:2)

有几种方法可以检查我能想到的事情:

  • 检查插件文件夹是否存在
  • 检查是否已定义挂钩或过滤器
  • 检查是否定义了define() - 等待直到插入了plugins_loaded钩子
  • 检查选项字段,了解插件设置的相关值
  • 检查是否已定义课程