这不是通常的“如何更改媒体上载文件夹?”问题我们的整个网站都是通过CDN运行的。CDN使用5-6MB的文件删除POST请求,因此WordPress上载失败。我可以通过改变WordPress发送文件上传请求的位置来解决这个问题。
如果正常的站点URL是www.example。com,我想上传到只是一个例子。com,它是我们的原始服务器,在处理较大的文件上载时不会有问题。有什么想法吗?
这不是通常的“如何更改媒体上载文件夹?”问题我们的整个网站都是通过CDN运行的。CDN使用5-6MB的文件删除POST请求,因此WordPress上载失败。我可以通过改变WordPress发送文件上传请求的位置来解决这个问题。
如果正常的站点URL是www.example。com,我想上传到只是一个例子。com,它是我们的原始服务器,在处理较大的文件上载时不会有问题。有什么想法吗?
其实比我想象的要容易。
function route_uploads_past_cdn( $url, $path ) {
$upload_paths = array( \'async-upload.php\', \'media-new.php\' );
if( !in_array( $path, $upload_paths ) ) {
return $url;
}
return str_replace(\'www.\', \'\', $url);
}
add_filter( \'admin_url\', \'pew_route_uploads_past_cdn\', 10, 2 );
上载媒体的URL通常为http://www.example.com/wp-admin/media-new.php
现在应该是http://example.com/wp-admin/media-new.php
因为URL是通过admin_url()
您可以对其进行筛选。我不太清楚你是什么意思。
您可以更改WP加载文件的位置,如果这是您的意思?add_filter( \'pre_option_upload_url_path\', function() { return \'http://yoursite.com/wp-content/uploads\'; } );
这就是我在本地服务器上开发的东西,所有“真实的东西/上传”都在实时服务器上。
edit: 所以不,这不会改变您从管理员上传的结束位置,这只会改变WP从何处加载媒体文件。要更改媒体上载将结束的默认文件夹,我认为您需要一个自定义上载功能。
edit2: 引用自here
您可以使用“upload\\u dir”筛选器
add_filter(\'upload_dir\', \'set_upload_folder\', 999);
function set_upload_folder( $upload_data ) {
// absolute dir path, must be writable by wordpress
$upload_data[\'basedir\'] = trailingslashit(ABSPATH). \'/files\';
$upload_data[\'baseurl\'] = \'http://subdomain.wptest.com/files\';
$subdir = $upload_data[\'subdir\'];
$upload_data[\'path\'] = $upload_data[\'basedir\'] . $subdir;
$upload_data[\'url\'] = $upload_data[\'baseurl\'] . $subdir;
return wp_parse_args($upload_data, $upload_data);
}
我问this question 大约几天前,答案立即解决了我的问题,但现在,当我尝试在表单中放置许多文件字段时,这只是第一次实地工作,因为我之前问题的解决方案覆盖了$\\u FILES数组。现在,我的表单中有以下HTML:<input type="file" name="my_file_upload[]" id="my_file_upload[]" multiple="multiple"> <inpu