web-dev-qa-db-fra.com

Changer le chemin de téléchargement et l'URL de WordPress

Lors d'une nouvelle installation, je souhaite déplacer le dossier de téléchargement vers un sous-domaine (censé accélérer le téléchargement). Mon sous-domaine est lié à un dossier appelé static. Donc j'ai:

  • Accueil
    • wp
      • wp-admin
      • wp-content
      • wp-include
    • statique

Maintenant, je dois dire à WordPress où se trouve le dossier de téléchargement et définir son URL. Le codex dit que je devrais éditer wp-config pour définir UPLOADS par rapport à ABSPAHT. Mais si je mets define( 'UPLOADS', '../static' ); of course URL dans les pages sont comme //mydomain.tld/wp/../static/image.jpg

J'ai regardé autour de moi et y ai trouvé de nombreuses réponses (filtres, édition de base de données, ...), dont certaines ne sont plus vraies (la page des paramètres de support ne permettant plus de changer de dossier de téléchargement) et d'autres manifestement fausses. .. Je veux le faire de la bonne façon.

Je suis allé à la page wp-admin/options.php et mis upload_path = ../static et upload_url_path = http://static.mydomain.tld et cela semble fonctionner.

Mais est-ce ainsi que c'est censé être fait? Et si les développeurs ont supprimé ces options de la page des paramètres de support, n'y a-t-il pas un risque que la fonctionnalité soit complètement supprimée par la suite?

3
Mat

Je suis allé à la page wp-admin/options.php et mis ... Mais est-ce ainsi que cela est censé être fait?

Nan. Vous ne devriez jamais rien changer dans les fichiers de base de WordPress, car toutes vos modifications seront perdues lors de la prochaine mise à jour. Vous devriez plutôt utiliser des actions et des filtres:

add_filter( 'pre_option_upload_path', function( $upload_path ) {
    return '/path/to/static';
});

add_filter( 'pre_option_upload_url_path', function( $upload_url_path ) {
    return 'http://static.example.org';
});
6
kovshenin

J'ai eu un problème similaire mappant les médias de sous-domaine. Demandé et répondu ici .
En bref, ajoutez à functions.php ce qui suit:

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