web-dev-qa-db-fra.com

Changer l'URL du site lorsque vous déplacez le site vers une autre URL?

Est-il vraiment nécessaire de mettre WP_HOME, WP_SITEURL dans wp-config.php ou de définir ces paramètres via le panneau d'administration à chaque fois que vous déplacez une instance WordPress vers une autre URL (par exemple: passer de l'environnement dev à la production)? Y a-t-il une meilleure stratégie?

5
Alpha Sisyphus

Ces paramètres et paramètres d’administrateur modifient les URL de la base de données. La seule autre façon de faire est d'exécuter des requêtes SQL sur la base de données dans phpmyadmin pour les modifier:

UPDATE wp_options SET option_value = replace(option_value, 'http://olddomain.com', 'http://newdomain.com') WHERE option_name = 'home' OR option_name = 'siteurl';

UPDATE wp_posts SET guid = replace(guid, 'http://olddomain.com','http://newdomain.com');

UPDATE wp_posts SET post_content = replace(post_content, 'http://olddomain.com', 'http://newdomain.com');

UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://olddomain.com', 'http://newdomain.com');

Mise à jour 16/01/2015: il est préférable d’utiliser un script traitant des données sérialisées, tel que interconnectit.com WordPress Serialized PHP Outil de remplacement de la recherche

3
markratledge

Lorsque vous passez d'un serveur à un autre, le problème peut être lié aux URL que WP est sérialisé dans la base de données. Pour effectuer une recherche et un remplacement en toute sécurité, vous pouvez utiliser cet outil search replace db .

Est très simple, suivez les instructions et n'oubliez pas de supprimer le script lorsque vous avez terminé.

2
Enrico Mingardo

Ce que je fais ici est que je garde une entrée dans mon fichier/etc/hosts qui pointe le domaine du site vers 127.0.0.1. La plupart du temps, la ligne est commentée pour que ma machine soit dirigée vers le site de production. Lorsque je développe quelque chose, je ne commente pas la ligne et le domaine pointe vers ma boîte de dev.

Je sais que c'est un peu moche, mais étant donné que Wordpress place le domaine dans de nombreux champs de la base de données (surtout si vous devez travailler avec des données réelles dans votre environnement de développement), c'est la méthode la plus rapide que je puisse trouver.

2
Rodrigo Sieiro

Vous pouvez placer ces paramètres dans un fichier externe et l'exclure de votre processus de publication.

0
Till

Je ne plaisante pas avec les fichiers de base, je déplace simplement les thèmes et les plugins à la place. Je développe localement et compresse les thèmes et les plugins pour la production. J'ai environ dix installations WordPress plus internes et cela a bien fonctionné pour moi jusqu'à présent.

Moi aussi, je ne déplace pas beaucoup de données, donc cette réponse peut ne pas vous aider. Il existe quelques plugins gratuits assez complets pour la sauvegarde et la restauration de données.

0
Nickiler

Utilisez en haut de votre fichier functions.php: update_option ('siteurl', 'http: //yoursite.com'); update_option ('home', 'http: //votresite.com');

Naviguez un peu sur votre site, connectez-vous au backend et supprimez ces lignes.

Cela devrait être suffisant.

0
Marsman