用于确定插件和内容目录的WordPress文档指出:
WordPress在确定内容目录和插件目录的路径时会使用以下常量。这些不应直接由插件或主题使用,而是出于完整性的目的在此处列出。
它接着名单WP_CONTENT_DIR
和WP_PLUGIN_DIR
常量,因为这个主题和插件开发者不宜用,想必其中:
WordPress允许用户将wp-content目录放置在他们想要的任何位置,因此您绝不能假定插件将位于wp-content / plugins中,或者上传将位于wp-content / uploads中,或者主题将位于wp-内容/主题。
马克·贾奎斯(Mark Jaquith)在这里还评论说,不应使用这些常量:
不要使用WP_PLUGIN_URL或WP_PLUGIN_DIR-插件可能不在插件目录中。
那么,在不使用这些常量的情况下引用插件,wp-content和theme文件夹的完整路径的公认方法是什么?
作为一个简单的示例,要输出所有已安装插件的完整路径,我可以这样做:
<?php
$plugins = get_plugins();
foreach ($plugins as $file => $details) {
echo WP_PLUGIN_DIR . '/' . $file . '<br>';
}
产生如下列表:
/var/www/wp-content/plugins/akismet/akismet.php
/var/www/wp-content/plugins/debug-bar/debug-bar.php
/var/www/wp-content/plugins/hello.php
(例如,如果我正在编写插件以允许用户有选择地将插件存档作为站点备份的一部分,则可能要这样做。)
如果使用WP_PLUGIN_DIR
错误,建议的替代方法是什么?我找不到与之相对应wp_upload_dir()
的插件,主题和wp-content文件夹,这使引用可能徘徊的主题和插件根目录成为问题。
WP_PLUGIN_DIR
,因此这里是我的问题。