Answers:
我最好的猜测是:
if ( ! is_file( $dir = WPMU_PLUGIN_DIR . '/pluginb/pluginb.php' ) ) {
if ( ! is_file( $dir = WP_PLUGIN_DIR . '/pluginb/pluginb.php' ) )
$dir = null;
}
return $dir;
但是,这里的危险仍然是插件的“基本名称”的假设-精心编写的插件即使其目录和/或主文件已被重命名(无论出于何种原因)仍将起作用。
这又回到我原来的评论-这取决于哪个第三方插件这指的是,许多作者定义自己的方法/常量来保存插件路径-这将是有意义的检查自己的存在和使用这些替代(如果可用)。
get_plugins()
在我的用例中就足够了。如果您正在寻找某些特定的插件,但没有更好的选择,我想您可以通过中的名称搜索该插件get_plugins()
。
因此,一种方法是plugin_dir_path()
在当前插件中调用,并将您自己的插件目录名称替换为您在(pluginb/pluginb.php
)之后插入的插件的名称:
因此,在我们的插件中plugina/plugina.php
,
$plugin_b = str_replace('plugina/','pluginb/pluginb.php',plugin_dir_path(__FILE__));
echo $plugin_b; //Prints path/to/pluginb/pluginb.php';
WP_PLUGIN_DIR
在您的pluginA中使用常量,例如:
include_once(WP_PLUGIN_DIR.'/pluginb/pluginb.php');
额外信息:https : //codex.wordpress.org/Determining_Plugin_and_Content_Directories