从主题获取插件目录


8

有谁知道从主题的functions.php中获取插件目录路径的非hacky方法?

我使用了plugin_dir_path(FILE),但是由于在主题的functions.php中调用了它,它返回了该文件的路径。不是插件目录。我可以对它进行字符串操作并添加插件路径,但这感觉几乎与对整个路径进行硬编码一样糟糕。

我已经使用它工作:

require_once( ABSPATH .'/wp-content/plugins/ehu-events/event-widget.php' );

但是我知道那太老套了,而且是错误的,我可能会因为使用它而被wordpress社区拒之门外!

我可以使用标准的wordpress功能吗?

Answers:


18

也许您正在寻找的是:

WP_PLUGIN_DIR  // full path, no trailing slash
WP_PLUGIN_URL  // full url, no trailing slash

参阅文件


1
请记住,有一些过滤器可能会将位置移动到其他位置。这也许是最好的选择,但肯定不是一个节省的假设。
kaiser

2
链接的文档说明了有关常量的以下内容:«这些不应该由插件或主题直接使用,而是在此处列出以确保完整性。» 因此,当建议不要在主题中使用它们时,可能不应该将其作为解决方案。
Gchtr

8

我相信这可能比依赖常量更可靠。

$url = plugins_url();
$path = parse_url($url);
var_dump($path['path']);

我怀疑它可能更可靠的原因是该plugins_url函数同时考虑了WPMU_PLUGIN_URLWP_PLUGIN_URL常量,并且还会考虑plugins_url过滤器。


1
这是最安全的方法,应该是最好的答案。
CGeorges

主题中包含的插件呢?
布雷特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.