web-dev-qa-db-fra.com

Définition du répertoire de téléchargement

Donc, je veux changer mon répertoire de téléchargement. Je suis capable de le changer en utilisant:

add_filter( 'pre_option_upload_url_path', 'wpse_77960_upload_url' );
function wpse_77960_upload_url() {
  return 'http://subdomain.example.com/files';
}

ou

update_option('upload_url_path', '/wp-content/uploads');

source

ou quelque chose du genre:

register_setting( 'media', 'upload_url_path', 'esc_url' );

Existe-t-il un moyen privilégié d’agir en termes de vitesse globale? J'ai essayé d'utiliser define( 'UPLOADS', 'http://absolute/path/to/dir' );, mais il continuait à ajouter le site-url à tous les téléchargements.

1
alme1304

Vous pouvez utiliser le filtre '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);
}

Ce code fonctionnera peu importe si l’option des sous-dossiers année/mois est activée ou désactivée.

Notez que, bien sûr, vous devez configurer votre DNS pour qu'il pointe la nouvelle URL vers le bon dossier.

1
gmazzap