我不会关注整个metabox的事情,但只想指出一些关于上传文件夹的“线索”。。
wordpress中的上载目录通过wp_upload_dir()
功能-可过滤。。
$uploads = apply_filters( \'upload_dir\',
array(
\'path\' => $dir,
\'url\' => $url,
\'subdir\' => $subdir,
\'basedir\' => $basedir,
\'baseurl\' => $baseurl,
\'error\' => false,
) );
稍后由
media_sideload_image
, 使用
wp_handle_upload
- 这些可能是您在这些教程中看到的。。。
因此,应用过滤器很简单,因为:
add_filter( \'upload_dir\', \'my_custom_upload_dir_function\' );
请注意,阵列部件必须由您制造和提供。。
您还可以在自定义函数中随时更改上载目录:
$wp_upload_dir = wp_upload_dir();
$my_sur = "_my_sufrfix";
$my_new_folder = $wp_upload_dir . $my_sur ;
现在,您可以将$my\\u new\\u文件夹用于
wp_mkdir_p()
wp_mkdir_p( $my_new_folder );
当然,你需要权限。。
chmod( $my_new_folder, 0644);
我有时使用的另一种方法是简单地应用一些与wp无关的函数,如
copy() ,
rename() 和
unlink()..
$path_parts = pathinfo($file); // we need to know the details ..
// \'dirname :: \' . $path_parts[\'dirname\'] . "\\n";
// \'basename :: \' . $path_parts[\'basename\']. "\\n";
// \'extension :: \' . $path_parts[\'extension\'] . "\\n";
// \'filename :: \' . $path_parts[\'filename\'] . "\\n"; // since PHP 5.2.0
// $renamed_dest_path need to be constructed , can be done
// manually or with wp_upload_dir()
if (!copy($file , $renamed_dest_path)) {
$debugtext .= "2 : failed to rename $dest_path_2...\\n";
}
最后,如果您愿意,您可以@取消原始文件的链接。。。
第二种方法有利弊,我现在不详细介绍。我认为第一种方法更适合在wp中“正常”使用,但第二种方法对于特定情况非常有用。。