Création du répertoire dans les fichiers téléchargés - wp_mkdir_p () ou WP_Filesystem?

9

Je ne pensais pas avoir eu auparavant besoin de créer des dossiers / fichiers dans WP auparavant, mais pour un plugin, j'ai besoin du dossier de cache (pour les images redimensionnées) dans wp-content/uploads .

Ce qui soulève la question - dois-je vraiment passer par tout le processus avec Filesystem API (y compris en demandant de manière désordonnée FTP informations d’identité en cas de besoin), ou wp_mkdir_p() suffit à cela?

    
posée Rarst 19.05.2011 - 11:21

3 réponses

7

wp-content/uploads/ devrait être accessible en écriture pour le serveur (sinon, il serait impossible de télécharger un fichier, non?). Si vous voulez créer quelque chose sous ce répertoire, vous pouvez utiliser wp_mkdir_p() .

Je n’utiliserais WP_Filesystem que s’il existe une chance que le serveur n’ait pas l’autorisation d’écrire sur l’emplacement, comme dans wp-content/plugins/ , qui ne doit pas nécessairement être accessible en écriture pour le serveur (du moins, je pense que cela ne correspond pas. ne pas être?).

Note: La page Autorisations de fichier du Codex parle également d'un répertoire wp-content/cache/ . S'agirait-il d'un emplacement "plus standard" pour les fichiers de cache?

    
réponse donnée Jan Fabry 19.05.2011 - 17:34
6

J'essaierais quelque chose de simple, avant de déconner avec une mer infinie de possibilités / configurations d'hébergement:

$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(); ... ;-)
}
    
réponse donnée kaiser 19.05.2011 - 17:02
4

Je souhaite juste que votre plugin crée des fichiers / dossiers: mon plugin l’a également fait et j’ai rencontré beaucoup de problèmes d’autorisations de fichiers pour différents utilisateurs. Certains sont des fenêtres, certains sont unix, d'autres sont hébergés et d'autres sont développés chez nous. C’était mon email de soutien n ° 1 une fois que je partageais le plugin.

J'ai refactoré mon code pour réduire le besoin de toucher aux systèmes de fichiers et le répertoire de téléchargement est le SEUL que j'utilise maintenant pour éviter de tels problèmes.

    
réponse donnée user6479 24.06.2011 - 17:33

Lire d'autres questions sur les étiquettes