Wordpress 在插件的上传目录中创建子文件夹

Wordpress create subfolder in uploads directory from plugin

我正在编写一个插件,要求我在上传目录中创建一个子文件夹。

这是我迄今为止尝试过的方法:

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

然而,当我检查 'wp-content/uploads/' 时,子文件夹尚未创建。

只需使用这个修改后的版本:

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

(仅适用于 PHP 5.4+)

更正:

  • 无需将 dirname( __FILE__) 作为参数传递给 wp_upload_dir
  • 也是wp_upload_dirreturns一个数组,所以需要访问你需要的路径
  • trailingslashit 已经删除了 并且 附加了一个新的尾部斜杠,所以从你的字符串中删除了它

同时检查 file/dir 用户权限以确保 PHP 可以在那里实际创建一个目录。

试试这个-

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