You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP中检测WordPress路径外的文件夹是否存在?

解决WordPress中目录存在检测失败的问题

问题根源

你之前的代码有两个核心错误:

  • 不能用URL检测:file_exists()函数不支持HTTP/HTTPS URL,只能识别服务器本地的文件/目录路径。
  • 相对路径错误:直接用$dir . $type会基于当前主题文件所在目录(public_html/wp-content/themes/theme-child/)去查找,实际找的是public_html/wp-content/themes/theme-child/myfiles/music/rock,和你目标路径不符。

正确代码实现

WordPress内置了ABSPATH常量,它代表网站根目录(也就是public_html/)的绝对路径,用它来拼接目标路径就能准确找到目录:

$dir = 'myfiles/music/';
$type = 'rock';
// 拼接服务器端绝对路径
$target_dir = ABSPATH . $dir . $type;

// 先检测路径存在,再确认是目录
if (file_exists($target_dir) && is_dir($target_dir)) {
    echo "The directory exists.";
} else {
    echo "error";
}

补充说明

  • ABSPATH是WordPress初始化时就定义的常量,无需额外设置,确保在主题函数文件中可以直接使用。
  • 如果需要兼容Windows服务器,建议用DIRECTORY_SEPARATOR代替手动写斜杠,适配不同系统的路径分隔符:
$target_dir = ABSPATH . 'myfiles' . DIRECTORY_SEPARATOR . 'music' . DIRECTORY_SEPARATOR . $type;

内容的提问来源于stack exchange,提问作者SubZer0

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 08:44:57