問題描述

我以前沒有實際需要在 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。