これは、「メディアのアップロードフォルダを変更するにはどうすればよいですか」という通常のことではありません。質問。私たちのサイト全体はCDNを通して運営されています。 CDNは5〜6MBのファイルでPOST要求をドロップするので、WordPressのアップロードは失敗します。 WordPressがファイルのアップロード要求を送信する場所を変更することでこれを回避できます。
通常のサイトのURLがwww.example.comの場合、アップロードは私たちのOriginサーバであるexample.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
になります。URLはadmin_url()
を介して渡されるため、フィルタリングできるので、http://example.com/wp-admin/media-new.php
になります。
どういう意味なのかよくわかりません。
あなたがそれを意味するのであれば、WPがファイルをロードする場所から変更することができますか? add_filter( 'pre_option_upload_url_path', function() { return 'http://yoursite.com/wp-content/uploads'; } );
とにかくライブサーバーにある「本物のもの/アップロード」すべてを使ってローカルサーバー上で開発するために私が使用するのはそれです。
edit: いいえ、アップロードが管理者から終了する場所は変わりません。これはWPがメディアファイルをロードする場所を変更するだけです。メディアのアップロードが終了するデフォルトフォルダを変更するには、カスタムアップロード機能が必要だと思います。
edit2: からの引用 ここ
'upload_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);
}