問題描述

我以前沒有實際需要在 WP 中創建文件夾/文件,但是對於插件,我需要 wp-content/uploads 中的緩存 (調整大小的圖像) 文件夾。

這提出了一個問題 – 我真的需要通過 Filesystem API 進行所有的過程 (包括在需要時麻煩地要求 FTP 憑據),或者 wp_mkdir_p()是否足夠好?

最佳解決方案

wp-content/uploads/應為服務器寫入 (否則無法上傳文件,否?) 。如果要在此目錄下創建一些內容,可以使用 wp_mkdir_p()來安全使用。

我只會使用 WP_Filesystem,如果服務器沒有權限寫入該位置,就像在 wp-content/plugins/中,這不是必須可寫的服務器 (至少我認為它不是嗎?)? 。

Sidenote:The File Permissions page of the Codex 還談到了一個 wp-content/cache/目錄。這將是緩存文件的”more standard” 位置嗎?

次佳解決方案

我會嘗試一些簡單的事情,然後在無休止的可能性/主機設置之間混亂:

$target = 'wherever';
wp_mkdir_p( $target );

if ( wp_mkdir_p( $target ) === TRUE )
{
    echo "Folder $target successfully created";
}
else
{
    new WP_Error; #... etc. Just tell where the user has to make a new folder with the name xy
    // or if you're kool, you use _doing_it_wrong(); ... ;-)
}

第三種解決方案

只需要讓你的插件創建文件/文件夾:我的插件也是這樣做的,我遇到了許多不同用户的文件權限的問題。有些是 windows,有些是 unix,有些是託管的,有些是自己生長的。一旦我分享了插件,這是我的第一個支持電子郵件。

我已經重構了我的代碼,以最大限度地減少觸摸文件系統的需要,並且上傳目錄是我現在使用的唯一一個避免這樣的問題。

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。