是否更改WordPress的媒体上传URL?

时间:2015-03-24 作者:kingkool68

这不是通常的“如何更改媒体上载文件夹?”问题我们的整个网站都是通过CDN运行的。CDN使用5-6MB的文件删除POST请求,因此WordPress上载失败。我可以通过改变WordPress发送文件上传请求的位置来解决这个问题。

如果正常的站点URL是www.example。com,我想上传到只是一个例子。com,它是我们的原始服务器,在处理较大的文件上载时不会有问题。有什么想法吗?

2 个回复
SO网友:kingkool68

其实比我想象的要容易。

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() 您可以对其进行筛选。

SO网友:jimihenrik

我不太清楚你是什么意思。

您可以更改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);
}

结束

相关推荐

使用MEDIA_HANDLE_UPLOAD上载具有多个字段的多个文件

我问this question 大约几天前,答案立即解决了我的问题,但现在,当我尝试在表单中放置许多文件字段时,这只是第一次实地工作,因为我之前问题的解决方案覆盖了$\\u FILES数组。现在,我的表单中有以下HTML:<input type="file" name="my_file_upload[]" id="my_file_upload[]" multiple="multiple"> <inpu