2017-08-04 9 views
0

J'écris un plugin qui nécessite que je crée un sous-dossier dans le répertoire uploads.Wordpress crée un sous-dossier dans le répertoire de téléchargement du plugin

Voici ce que j'ai essayé jusqu'ici:

$uploads_dir = trailingslashit(wp_upload_dir(dirname(__FILE__))) . '/evaluation-uploads'; 
wp_mkdir_p($uploads_dir); 

Cependant quand je vérifie 'wp-content/uploads /' le sous-dossier n'a pas été créé.

+0

chèque 'de uploads_dir' de $, les droits de l'utilisateur qui s'exécute php, et les droits des' wp-content/uploads/'dir – questlooking

Répondre

1

Il suffit d'utiliser cette version modifiée:

$uploads_dir = trailingslashit(wp_upload_dir()['basedir']) . 'evaluation-uploads'; 
wp_mkdir_p($uploads_dir); 

(ne fonctionne que sur PHP 5.4+)

Corrections apportées:

  • Pas besoin de passer dirname(__FILE__) comme paramètre à wp_upload_dir
  • Egalement wp_upload_dir renvoie un tableau, vous devez donc accéder au chemin dont vous avez besoin
  • trailingslashit va déjà supprimer et ajouter une nouvelle slash, donc supprimé de votre chaîne

Vérifiez également le fichier/dir-utilisateur des autorisations pour assurer PHP peut effectivement créer un répertoire là.

+1

Thank you! Cela a fonctionné. Il manque une parenthèse après ['basedir'] :) –

0

essayer this-

$upload = wp_upload_dir(); 
$upload_dir = $upload['basedir']; 
$upload_dir = $upload_dir . '/mypluginfiles'; 
if (! is_dir($upload_dir)) { 
    mkdir($upload_dir, 0700); 
}