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

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

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


当前回答

我需要一个登录网站同样的东西。我需要创建一个包含两个变量的目录。

$目录是主文件夹,我想在其中创建另一个带有用户许可证号码的子文件夹。

include_once("../include/session.php");

$lnum = $session->lnum; // Users license number from sessions
$directory = uploaded_labels; // Name of directory that folder is being created in

if (!file_exists($directory . "/" . $lnum)) {
    mkdir($directory . "/" . $lnum, 0777, true);
}

其他回答

我需要一个登录网站同样的东西。我需要创建一个包含两个变量的目录。

$目录是主文件夹,我想在其中创建另一个带有用户许可证号码的子文件夹。

include_once("../include/session.php");

$lnum = $session->lnum; // Users license number from sessions
$directory = uploaded_labels; // Name of directory that folder is being created in

if (!file_exists($directory . "/" . $lnum)) {
    mkdir($directory . "/" . $lnum, 0777, true);
}

我们应该始终模块化我们的代码,我在下面写了同样的检查…

我们先查一下目录。如果该目录不存在,则创建该目录。

$boolDirPresents = $this->CheckDir($DirectoryName);

if (!$boolDirPresents) {
        $boolCreateDirectory = $this->CreateDirectory($DirectoryName);
        if ($boolCreateDirectory) {
        echo "Created successfully";
      }
  }

function CheckDir($DirName) {
    if (file_exists($DirName)) {
        echo "Dir Exists<br>";
        return true;
    } else {
        echo "Dir Not Absent<br>";
        return false;
    }
}
     
function CreateDirectory($DirName) {
    if (mkdir($DirName, 0777)) {
        return true;
    } else {
        return false;
    }
}

快速创建文件夹的方法:

if (!is_dir('path/to/directory')) {
    mkdir('path/to/directory', 0777, 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()

试试这个,使用mkdir:

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

请注意,0777已经是目录的默认模式,并且仍然可能被当前umask修改。