Php Wordpress多站点wp\u上传\u目录错误
目前我正试图上传一个图像到服务器端的Wordpress多站点。 (映像已位于同一服务器的另一路径上) 我已经编写了一个小PHP脚本,可以处理以下问题:Php Wordpress多站点wp\u上传\u目录错误,php,wordpress,url,upload,multisite,Php,Wordpress,Url,Upload,Multisite,目前我正试图上传一个图像到服务器端的Wordpress多站点。 (映像已位于同一服务器的另一路径上) 我已经编写了一个小PHP脚本,可以处理以下问题: $upload_dir = wp_upload_dir(); var_dump( $upload_dir); $filename = basename($imagepath); if (wp_mkdir_p($upload_dir['path'])) { $file = $upload_dir[
$upload_dir = wp_upload_dir();
var_dump( $upload_dir);
$filename = basename($imagepath);
if (wp_mkdir_p($upload_dir['path'])) {
$file = $upload_dir['path'].'/'.$filename;
} else {
$file = $upload_dir['basedir'].'/'.$filename;
}
copy($imagepath, $file);
$wp_filetype = wp_check_filetype($filename, null);
$attachment = array(
'guid' => $upload_dir['url'].'/'.basename($filename),
'post_mime_type' => $wp_filetype['type'],
'post_title' => sanitize_file_name($filename),
'post_content' => '',
'post_status' => 'inherit', );
$attach_id = wp_insert_attachment($attachment, $file, $postid);
一切正常,但图像存储在错误的文件夹中。
wp_upload_dir()
返回公共路径/wp content/uploads/2016/03
,而不是特定子网站的路径,它将是/wp content/uploads/sites/SITE\u ID/2016/03
稍后当WP使用图像时,图像的url设置为http://example.com/wp-content/uploads/sites/SITE_ID/2016/03/IMAGE.JPG
(这是不正确的…)
使用内置媒体上传工具从wordpress works正确上传文件(文件存储在/wp content/uploads/sites/SITE_ID/2016/03
中)
你看,wp\u upload\u dir()
工作不正常
谢谢..我解决了
对于每个有相同问题的人,解决方案很简单:
if(is_multisite()){
add_filter('upload_dir', 'fix_upload_paths');
}
function fix_upload_paths($data)
{
$data['basedir'] = $data['basedir'].'/sites/'.get_current_blog_id();
$data['path'] = $data['basedir'].$data['subdir'];
$data['baseurl'] = $data['baseurl'].'/sites/'.get_current_blog_id();
$data['url'] = $data['baseurl'].$data['subdir'];
return $data;
}