问题描述

要获得一个插件的路径,您可以使用 plugin_dir_path(__FILE__) – 但这显然必须从 plug-in 中调用。

如何从 plug-in A 中可靠地获取插件 B(pluginb/pluginb.php) 的路径?

编辑:假设你知道你以后的 plug-in 的 s after(实际上你可以从 get_plugins()获得它们) 。但我希望它能普遍工作。

最佳解决方案

我最好的猜测是:

if ( ! is_file( $dir = WPMU_PLUGIN_DIR . '/pluginb/pluginb.php' ) ) {
    if ( ! is_file( $dir = WP_PLUGIN_DIR . '/pluginb/pluginb.php' ) )
        $dir = null;
}

return $dir;

然而,这里的危险仍然是插件的”basename” 的假设 – 一个写得很好的插件仍然可以运行,即使它的目录和/或主文件已被重命名 (无论什么原因) 。

这可以追溯到我原来的评论 – 根据这是指哪个 third-party 插件,许多作者定义了自己的方法/常量来保存插件路径 – 检查它们的存在和使用它们 (如果可用) 。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。