如何在WordPress中获取wp-content文件夹?

17
如果我的 main.php 文件位于 /wp-content/plugins/myplugin/folder/folder/folder/ 中,为什么包含位于 /wp-content/uploads/folder/ 内的 urls.php 不适用于此路径:
include_once("../../../../../uploads/folder/urls.php");

只有在与主文件main.php相同的文件夹中并且路径为('urls.php')时才能正常工作。

2个回答

34
您可以使用 content_url() 函数,它位于 http://www.example.com/wp-content wp-content 文件夹中。
或者,您可以使用 WP_CONTENT_DIR 常量,它将定位到 wp-content 文件夹。
require_once(WP_CONTENT_DIR. 'uploads/folder/urls.php');

查看更多信息 文档


仍然不确定为什么多个“../”无法工作,但是感谢使用WP_CONTENT_DIR。 - Nathan Bernard
2
@NathanBernard 脚本实际上是在包含该文件的其他文件中执行的。它可能是站点index.php,或wp-admin index.php,或任何一个文件。它是动态的,因此.././类型的相对路径会出错。尝试将$_SERVER[PHP_SELF]放入脚本并输出,这将看到实际运行的文件。 - plus70
1
似乎在我的安装中,WP_CONTENT_DIR没有尾随斜杠。不确定这是否是最近的更改,但我刚刚尝试加载wp-contentvendor/...时出现了错误。注意一下。 - phatskat
1
在我的环境中(服务器?WordPress版本?PHP版本?),WP_CONTENT_DIR没有尾随斜杠,因此我必须编写require_once(WP_CONTENT_DIR. '/uploads/folder/urls.php'); - Marco Panichi

1

这看起来很奇怪。当您运行main.php时,是否有任何错误消息?再次检查,可能有错别字。在调用urls.php时,您是否使用了文本编辑器自动完成功能?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接