Verzeichnis in Uploads erstellen - wp_mkdir_p () oder WP_Filesystem?

9

Ich glaube nicht, dass ich jemals zuvor Ordner / Dateien in WP erstellen musste, aber für ein Plugin benötige ich einen Cache-Ordner (für Bilder mit geänderter Größe) wp-content/uploads.

Was die Frage aufwirft: Filesystem APIMuss ich wirklich den gesamten Prozess durchlaufen (einschließlich der unordentlichen Abfrage von FTP-Anmeldeinformationen bei Bedarf) oder wp_mkdir_p()ist dies gut genug?

Selten
quelle

Antworten:

7

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

Ich würde nur verwenden, WP_Filesystemwenn die Möglichkeit besteht, dass der Server keine Berechtigungen zum Schreiben an den Speicherort hat, wie in wp-content/plugins/, der für den Server nicht beschreibbar sein muss (zumindest denke ich, dass dies nicht erforderlich ist?).

Nebenbemerkung: Auf der Seite " Dateiberechtigungen" des Codex wird auch über ein wp-content/cache/Verzeichnis gesprochen. Wäre dies ein "Standard" -Speicherort für Cache-Dateien?

Jan Fabry
quelle
Ich bin mir nicht sicher, aber ich denke, es cachegeht mehr um Dinge wie Plugins zum Zwischenspeichern von Seiten, während es in meinem Fall eher um alternative Versionen von Bildern geht ... Die Unterscheidung zwischen diesen Ordnern scheint eher semantisch als technisch zu sein, nicht wahr?
Erst
6

Ich würde etwas Einfaches ausprobieren, bevor ich mit einem endlosen Meer von 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(); ... ;-)
}
Kaiser
quelle
Übrigens: Es ist nicht getestet und ich habe keine Ahnung, ob das Speichern wp_mkdir_p();nach der Ausführung überprüft werden kann oder ob die Ausführung des fn in der if-Anweisung enthalten sein sollte ... (habe es noch nie verwendet und wusste bis dahin nicht einmal über die Funktion selbst Bescheid jetzt).
Kaiser
Verwandte Funktionen sind eine Art Back-End-Funktion ... Ich möchte die Interaktivität minimieren. Obwohl die Nachricht in der Einstellung des Plugins eine Überlegung wert ist.
Erst
Ich würde nicht zu viel darüber nachdenken. Wenn das System des Benutzers dies nicht mit Standardwerten tun kann, versuchen Sie, ihm mitzuteilen, was zu tun ist. Wie gesagt: Die Möglichkeiten sind endlos und imho ist es besser, wenn Sie nur sagen, was das Ergebnis sein soll, um fortzufahren und zu versuchen, dies per Code oder Support zu beheben.
Kaiser
4

Nur ein Hinweis darauf, wie Ihr Plugin Dateien / Ordner erstellt: Mein Plugin hat dies ebenfalls getan, und ich bin auf eine Reihe von Problemen mit Dateiberechtigungen für verschiedene Benutzer gestoßen. Einige sind Windows, einige sind Unix, einige werden gehostet und einige sind aus eigenem Anbau. 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.

user6479
quelle
Ja, das verstehe ich, deshalb stelle ich mir die Frage. Mein aktueller Überblick über das Problem ist, dass uploadses keinen Sinn macht, wenn das Plugin versucht, mehr zu tun , wenn es so gesperrt ist, dass WP fehlschlägt. Und wenn es gut genug für WP ist, dann ist es gut genug für Plugins. Zum Glück brauche ich nur irgendwo ein Cache-Verzeichnis und nichts Komplexeres und Fehleranfälligeres.
Rarst