获取不同插件的路径

时间:2012-11-10 作者:Stephen Harris

获取可使用的插件的路径plugin_dir_path(__FILE__) - 但这显然必须从插件内部调用。

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

Edit: 它假设您知道您所追求的插件的slug(实际上您可以从get_plugins()). 但我希望它能普遍起作用。

3 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

我最好的猜测是:

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”——一个编写良好的插件即使其目录和/或主文件被重命名(无论出于何种原因),仍然可以运行。

这可以追溯到我最初的评论-根据这是指哪一个第三方插件,许多作者定义了自己的方法/常量来保存插件路径-检查它们的存在是有意义的&;改用这些(如果可用)。

SO网友:Stephen Harris

因此,一种方法是调用plugin_dir_path() 在当前插件中,将您自己的插件目录名替换为您要查找的插件的slug目录名(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\';

SO网友:Harkály Gergő

使用WP_PLUGIN_DIR 插件中的常量,例如:

include_once(WP_PLUGIN_DIR.\'/pluginb/pluginb.php\');
额外信息:https://codex.wordpress.org/Determining_Plugin_and_Content_Directories

结束

相关推荐

Active Directory(AD)组身份验证以查看WordPress帖子?

我正在尝试使用active directory身份验证设置wordpress站点。出现的一个问题是,能否将类别/帖子/博客阅读限制在特定的广告组。我从来没有见过这样做,我也没有找到任何插件,似乎承诺这一功能。似乎最好的选择是只给一群用户一个具有read\\u private\\u posts功能的角色,但我不确定这会起到什么作用。