wake-up-neo.com

Verzeichnis in Uploads erstellen - wp_mkdir_p () oder WP_Filesystem?

Ich glaube nicht, dass ich jemals ein praktisches Bedürfnis hatte, Ordner/Dateien in WP zu erstellen, aber für ein Plugin benötige ich einen Cache-Ordner (für Bilder in der Größe) in wp-content/uploads.

Was die Frage aufwirft - muss ich wirklich den gesamten Prozess mit Filesystem API durchlaufen (einschließlich der unordentlichen Abfrage von FTP-Anmeldeinformationen, falls erforderlich), oder wp_mkdir_p() ist dies ausreichend?

9
Rarst

wp-content/uploads/ sollte für den Server beschreibbar sein (ansonsten wäre es unmöglich, eine Datei hochzuladen, nein?). Wenn Sie in diesem Verzeichnis etwas erstellen möchten, können Sie wp_mkdir_p() sicher verwenden.

Ich würde WP_Filesystem nur verwenden, wenn die Möglichkeit besteht, dass der Server nicht berechtigt ist, an den Speicherort zu schreiben, wie in wp-content/plugins/, der für den Server nicht beschreibbar sein muss (zumindest denke ich, dass dies nicht der Fall ist?). .

Nebenbemerkung: Die Seite "Dateiberechtigungen" des Codex befasst sich auch mit einem wp-content/cache/ -Verzeichnis. Wäre dies ein Standardspeicherort für Cachedateien?

7
Jan Fabry

Ich würde etwas Einfaches ausprobieren, bevor ich mit einem endlosen Meer an Möglichkeiten/Hosting-Setups herumspiele:

$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(); ... ;-)
}
6
kaiser

Nur eine kurze Einführung, wie Ihr Plugin Dateien/Ordner erstellt: Mein Plugin hat dies auch getan, und ich hatte eine Menge Probleme mit den Dateiberechtigungen für verschiedene Benutzer. Manche sind Windows, manche sind Unix, manche sind gehostet und manche sind einheimisch. Es war meine erste Support-E-Mail, als ich das Plugin geteilt habe.

Ich habe meinen Code überarbeitet, um die Notwendigkeit zu minimieren, die Dateisysteme zu berühren, und das Upload-Verzeichnis ist das EINZIGE, das ich jetzt verwende, um solche Probleme zu vermeiden.

4
user6479