首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何区分插件是否未安装或只是未激活

如何区分插件是否未安装或只是未激活
EN

WordPress Development用户
提问于 2018-11-29 09:53:01
回答 2查看 1K关注 0票数 2

我试图应用一种检查,看看插件是否不是活动的,或者只是根本没有安装在插件目录中。当我测试时,我检查是否安装了插件,但没有激活,如屏幕截图所示。

检查是否不活动的部分工作得完美无缺:

代码语言:javascript
复制
$isinactive = is_plugin_inactive( 'advanced-custom-fields/acf.php' );
var_dump( $isinactive );

在检查插件是否实际安装并显示在插件目录中时,没有。首先,我生成主插件文件的路径:

代码语言:javascript
复制
$pathpluginurl = plugins_url( 'advanced-custom-fields/acf.php' );
var_dump($pathpluginurl);

然后检查该文件是否存在:

代码语言:javascript
复制
$isinstalled = file_exists( $pathpluginurl );
var_dump($isinstalled);

然后检查特定文件是否不存在:

代码语言:javascript
复制
if ( ! file_exists( $pathpluginurl ) ) {
    echo "File does not exist";
} else {
    echo "File exists";
}

产出:

代码语言:javascript
复制
true //true for that the plugin is not active
http://mysandbox.test/wp-content/plugins/advanced-custom-fields/acf.php
false  // false for that the acf.php file actually exists

file not exists

我不明白为什么file_exists没有陈述事实,相反地说插件不存在?

EN

回答 2

WordPress Development用户

回答已采纳

发布于 2018-11-29 10:01:43

file_exists需要路径,而不是URL。要获得通往任意插件的路径,您需要使用WP_PLUGIN_DIR

代码语言:javascript
复制
$pathpluginurl = WP_PLUGIN_DIR . '/advanced-custom-fields/acf.php';

$isinstalled = file_exists( $pathpluginurl );
票数 5
EN

WordPress Development用户

发布于 2018-11-29 10:04:10

您在URL上使用file_exists()函数,而不是在文件路径上,这将不起作用(在大多数情况下)。

而不是

$pathpluginurl = plugins_url( 'advanced-custom-fields/acf.php' );

您应该做的是获得一个绝对的文件路径。

$pathpluginurl = ABSPATH . 'wp-content/plugins/advanced-custom-fields/acf.php';

票数 0
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/320538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档