Ändern Sie die URL zum Hochladen von WordPress-Medien?

Dies ist nicht das übliche “Wie ändere ich den Medien-Upload-Ordner?” Frage. Unsere gesamte Website läuft über ein CDN. Das CDN löscht POST-Anfragen mit einer 5-6MB-Datei, damit die WordPress-Uploads fehlschlagen. Ich kann das umgehen, denke ich, indem ich verändere, wo WordPress Datei-Upload-Anfragen sendet.

Wenn die normale Site-URL www.example.com lautet, möchte ich, dass Uploads nur an example.com gesendet werden, unserem Ursprungsserver, und es wird kein Problem sein, größere Dateiuploads zu verarbeiten. Irgendwelche Ideen?

Solutions Collecting From Web of "Ändern Sie die URL zum Hochladen von WordPress-Medien?"

Es war tatsächlich einfacher als ich dachte.

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 ); 

Die URL zum Hochladen von Medien wäre normalerweise http://www.example.com/wp-admin/media-new.php wäre nun http://example.com/wp-admin/media-new.php seit den URLs werden über admin_url() die Sie filtern können.

Ich bin mir nicht ganz sicher, was du meinst.

Sie können ändern, wo der WP die Dateien lädt, wenn Sie das meinen? add_filter( 'pre_option_upload_url_path', function() { return 'http://yoursite.com/wp-content/uploads'; } );

Das ist, was ich benutze, um auf einem lokalen Server zu entwickeln, mit all den “echten Sachen / Uploads”, die sowieso in den Live-Servern sind.

edit: also nein, das ändert sich nicht, wo deine Uploads vom Admin enden, das ändert sich nur dort, wo der WP die Mediadateien lädt. Um den Standardordner zu ändern, in dem Medien hochgeladen werden, denke ich, dass Sie eine benutzerdefinierte Upload-function benötigen.

edit2: Zitat von hier

Sie können den Filter “upload_dir” verwenden

 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); }