我在Bluehost上安装WordPress时遇到过一些情况,我的WordPress主题遇到了错误,因为上传文件夹wp-content/uploads不存在。

显然Bluehost cPanel WordPress安装程序不会创建这个文件夹,但HostGator可以。

因此,我需要向我的主题添加代码,以检查文件夹并创建它。


当前回答

快速创建文件夹的方法:

if (!is_dir('path/to/directory')) {
    mkdir('path/to/directory', 0777, true);
}

其他回答

你还可以试试:

$dirpath = "path/to/dir";
$mode = "0764";
is_dir($dirpath) || mkdir($dirpath, $mode, true);

对于你关于WordPress的具体问题,使用下面的代码:

if (!is_dir(ABSPATH . 'wp-content/uploads')) wp_mkdir_p(ABSPATH . 'wp-content/uploads');

函数参考:WordPress wp_mkdir_p。ABSPATH是返回WordPress工作目录路径的常量。

还有另一个名为wp_upload_dir()的WordPress函数。它返回上传目录路径,如果不存在,则创建一个文件夹。

$upload_path = wp_upload_dir();

下面的代码一般适用于PHP。

if (!is_dir('path/to/directory')) mkdir('path/to/directory', 0777, true);

函数参考:PHP is_dir()

递归创建目录路径:

function makedirs($dirpath, $mode=0777) {
    return is_dir($dirpath) || mkdir($dirpath, $mode, true);
}

灵感来自Python的os.makedirs()

给你。

if (!is_dir('path/to/directory')) {
    if (!mkdir('path/to/directory', 0777, true) && !is_dir('path/to/directory')) {
        throw new \RuntimeException(sprintf('Directory "%s" was not created', 'path/to/directory'));
    }
}

快速创建文件夹的方法:

if (!is_dir('path/to/directory')) {
    mkdir('path/to/directory', 0777, true);
}