Cambiar URLs para contenido estático
Mi host tiene un cluster NGINX de alta velocidad.
Me gustaría cargar mis archivos CSS, JS y multimedia desde este cluster. He seguido estos pasos y agregué el nuevo dominio estático a través de mi DNS.
La nueva configuración DNS se ha propagado correctamente y puedo acceder a mis archivos estáticos así http://static.example.com/wp-content/themes/mytheme/style.css.
Para empezar, me gustaría cambiar la URL de carga de medios. He intentado agregar el siguiente fragmento a wp-config.php
antes de require_once(ABSPATH.'wp-settings.php');
/** Ruta al cluster NGINX */
define( 'UPLOADS', ''.'http://static.example.com/wp-content/uploads' );
Al guardar el fragmento anterior en wp-config.php
y actualizar el sitio, mis archivos multimedia (imágenes) se están cargando desde la siguiente URL:
http://www.example.com/http://static.example.com/wp-content/uploads/2016/11/image-name.jpg
Como pueden ver, la URL raíz se está cargando antes que la URL estática. ¿Cuál es la forma correcta de establecer la nueva ruta de carga? ¿Debería también realizar una búsqueda y reemplazo para las cargas anteriores?
También asumo que debo cambiar mis rutas JS y CSS en functions.php
, ¿así?:
// Antes
wp_enqueue_script( 'script', get_template_directory_uri() . '/js/script.js', array(), '20161025', false );
// Después
wp_enqueue_script('script', 'http://static.example.com/wp-content/themes/mytheme/js/script.js', array(), '20161025', false );

Esta respuesta ha resuelto el problema.
Necesitas agregar esto a tu archivo functions.php
.
/**
* URL personalizada para subida de medios
* @link https://wordpress.stackexchange.com/questions/77960/wordpress-3-5-setting-custom-full-url-path-to-files-in-the-media-library
*/
add_filter( 'pre_option_upload_url_path', 'upload_url' );
function upload_url() {
return 'http://static.tudominio.com/wp-content/uploads';
}
No es necesario agregar el fragmento original en wp-config.php
.

La forma más fácil de indicarle a WordPress que use un subdominio (u otro dominio) es definiendo una variable global en tu archivo config.php.
define('WP_CONTENT_URL', 'http://static.tudominio.com');
Coloca esto al principio del archivo de configuración, de lo contrario puede que no funcione. Esto actualizará la URL de todos los recursos en el directorio wp-content.
Lee más sobre esto en el WordPress Codex
