我在使用 Bluehost进行 WordPress 安装时wp-content/uploads
,我的 WordPress 主题遇到了错误。
显然,尽管 HostGator可以,Bluehost cPanel WordPress 安装程序不会创建此文件夹。
因此,我需要将代码添加到主题中,以检查文件夹并以其他方式创建该文件夹。
使用 mkdir尝试一下:
if (!file_exists('path/to/directory')) {
mkdir('path/to/directory', 0777, true);
}
请注意, 0777
已经是目录的默认模式,并且仍可能被当前的 umask 修改。
这是丢失的那一块。您需要像这样在 mkdir调用中将 “递归” 标志作为第三个参数(布尔值 true)传递:
mkdir('path/to/directory', 0755, true);
自 Google 出现以来,它的通用性有所提高。尽管细节更为具体,但此问题的标题更为通用。
/**
* recursively create a long directory path
*/
function createPath($path) {
if (is_dir($path)) return true;
$prev_path = substr($path, 0, strrpos($path, '/', -2) + 1 );
$return = createPath($prev_path);
return ($return && is_writable($prev_path)) ? mkdir($path) : false;
}
这将采用一条路径,可能带有一长串未创建的目录,并继续向上移动一个目录,直到到达现有目录为止。然后它将尝试在该目录中创建下一个目录,并继续直到创建了所有目录。如果成功,则返回 true。
可以通过提供一个停止级别来改进它,如果它超出了用户文件夹或其他内容,并且包含了权限,它只会失败。