Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Plugins 有没有办法确定是否刚刚安装了WordPress插件?_Plugins_Wordpress - Fatal编程技术网

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

Plugins 有没有办法确定是否刚刚安装了WordPress插件?,plugins,wordpress,Plugins,Wordpress,我想知道是否有任何方法可以知道插件是否刚刚安装。我不在乎它是否被激活,但前提是该插件已经安装 你知道有什么好办法吗 我必须说得更具体些。我知道在哪里可以找到插件,我知道如何查看是否安装了插件。问题是,是否有任何编程方法来检查插件是否已安装 ie:WordPress为我们提供register_activation_hook()来进行我们喜欢的插件激活操作,但是没有任何相关的插件安装挂钩。有什么方法可以确定插件的安装吗?有几种方法可以检查,我可以想到: 检查插件文件夹是否存在 检查是否定义了挂钩或

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

你知道有什么好办法吗

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


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

有几种方法可以检查,我可以想到:

  • 检查插件文件夹是否存在
  • 检查是否定义了挂钩或过滤器
  • 检查是否定义了define()-等待插件加载的钩子运行此钩子
  • 检查由插件设置的相关值的选项字段
  • 检查是否已定义类

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

信息: 使用register_activation_hook需要记住的主要一点是,它被称为一个中间页面,介于从wp admin/plugins.php单击激活链接和在它被钩住后看到插件激活通知之间。我在尝试使用从激活链接发送的
$\u GET
变量后发现了这一点。如果你仔细看一看,你点击的链接和你最后看到的链接会略有不同。这就是为什么不能使用
add_action()、do_action()或add_filter()
。。在
寄存器中\u激活\u hook()
触发器。一旦插件被激活,它会立即重定向

解决方案: 但是,在这样的钩子过程中,您可以使用
add_选项

/* 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 */
    }
}

这应该让你开始

你说的是从php脚本文件检查吗?想看看插件是否存在吗?如果是这样,它是一个特定的插件,还是任何插件?