【发布时间】:2019-07-31 11:29:12
【问题描述】:
我是 Stackoverflow、PHP 和 WP 主题制作的新手,我面临以下问题:我正在博客主页上开发图像轮播(位于主题目录中的 home.php)但我需要在不同的目录 (/wordpress/wp-content/uploads/HP/carousel) 上检索图像,因为为了最终用户,我使用 Max Foundry 的 Wordpress 媒体库文件夹 (https://it.wordpress.org/plugins/media-library-plus/) 为轮播创建一个特定文件夹以简化为最终用户上传轮播的过程。
我尝试了 PHP 函数 opendir() 或 scandir() 以及 glob(),如果该目录位于同一主题目录中,则它可以工作,但我的客户端应该使用 FTP 和 Filezilla 之类的东西,我不不希望他让他玩可能会破坏我的工作的工具。所以我在网上寻找了另一种解决方案:我发现我应该使用ABSPATH 或 idk 之类的东西,根本不起作用,它无法将字符串识别为路径。我还尝试使用 WP 函数 get_site_url() 在页面的另一部分中用于类似目的,但在这里它不起作用。
$dir = get_site_url().'/wp-content/uploads/HP/carousel/';
if (is_dir($dir)) //testing if it's a directory
printf($dir);
else {
echo 'not a directory';
}
使用ABSPATH 的结果相同。然后很明显,如果我尝试使用 opendir 打开目录,它会返回错误。
我仍在学习,我找不到一个很好的参考来解释这个函数和全局变量是如何工作的,所以我想我缺少一些东西。 我希望我的代码打开另一个目录,这是本地的,因为它在同一台服务器上,来自另一个,特别是我正在构建我的主题的目录。 非常感谢您的时间和最终的帮助。
编辑:谢谢@cptnk 和@Uri Chachick,我不知道函数wp_upload_dir() 现在路径被识别为目录,但是如果我尝试读取它的内容使用opendir()、scandir() 或glob() 我要放入的数组 - 我猜 - 尝试打印时内容结果为空。我认为问题出在字符串的格式上,其中包含\ 和/,所以我将所有反斜杠都变成了正斜杠,但仍然没有,我无法检索目录中的图像(现在是正确到达)。我如何才能访问图像?
【问题讨论】:
-
get_site_url 不是你应该开始使用的 - 因为那是 URLs,而不是 file system 路径。如果您不知道这种差异,请先阅读/弄清楚这一点。
-
其次,给我们一个恰当的问题描述——不仅仅是“不工作”。 How to Ask。做一个 $dir 的调试输出,看看它是否包含你所期望的 - 或者还有什么,如果没有。
-
@misorude 让您发表评论,我认为“不起作用”的事情很清楚,因为其他用户没有理解它,但我要编辑我的问题以使其更清楚。 “不起作用”是指我无法到达我正在寻找的目录(第 2 段第 5 行)。我也知道 get_site_url() 用于 URL,正如函数名称所说,我的意思是我尝试使用 URL 和文件系统路径来打开目录,但我不知道如何正确执行,因为我的意思是做没用。
标签: php wordpress redirect directory wordpress-theming