octobre 9

19 commentaire(s)

WordPress: modifier et mettre à jour les URL après la migration d’un site

Récemment, j’ai dû déplacer le dossier WordPress du site pour avoir accès aux thèmes WordPress gratuits mis à disposition par mon hébergeur. Après quelques heures, le plugin Broken Link Checker me signalait déjà plus de 700 liens incorrects à cause du déplacement du dossier WordPress du site PEI 🙁

Après avoir corrigé plus de 50 liens à la main, je me suis dit qu’il devait certainement y avoir un moyen plus rapide pour mettre à jour tous les liens d’un site WordPress… et c’est justement ce que je vais vous partager dans cet article.

Ce qui suit peut également vous faire gagner beaucoup de temps dans les situations suivantes:

  • vous avez changé le nom de domaine de votre site
  • vous avez changé l’emplacement du dossier wp-content de votre site
  • vous avez installé un certificat SSL et souhaitez passer tous vos liens en https (dans ce cas, vous pouvez aussi simplement utiliser cette extension WordPress qui fera le job automatiquement)

Mettre à jour les URL d’un site WordPress dans sa base de données MySQL

Pour des raisons de sécurité, certains hébergeurs (dont Infomaniak) bloquent l’usage d’extensions comme Search & Replace qui permettent de mettre à jour les liens d’un site WordPress en quelques clics. Etant dans ce cas de figure, j’ai donc été contraint d’apprendre à faire cela manuellement via la base de données MySQL de mon site WordPress.

Je vous vois déjà trembler… mais c’est tout à fait faisable si vous avez un peu l’habitude de bidouiller et de chercher des solutions pour faire tourner votre bon vieux site WordPress 😉

Voici comment j’ai changé rapidement les URL de mon site après avoir changé l’emplacement du répertoire WordPress de mon site.

Commencez par sauvegarder la base de données MySQL de votre site WordPress afin de pouvoir rétablir la situation en cas de problème. Ensuite, connectez-vous à la base de données de votre site via phpMyAdmin. Sélectionnez ensuite la base concernée (1), cliquez sur l’onglet SQL (2),  puis utilisez les requêtes SQL suivantes (3) en prenant bien soin d’adapter les valeurs concernées selon vos besoins.

La requête suivante met à jour l’adresse de votre site dans les options de WordPress:

UPDATE wp_options SET option_value = replace(option_value, 'http://ancienneURL', 'http://www.nouvelleURL') WHERE option_name = 'home' OR option_name = 'siteurl';

La requête suivante change l’URL relative des articles dans la table wp_posts:

UPDATE wp_posts SET guid = replace(guid, 'http://www.ancienneURL','http://www.nouvelleURL');

La requête suivante met à jour les liens dans le contenu de vos articles et vos pages:

UPDATE wp_posts SET post_content = replace(post_content, 'http://www.ancienneURL', 'http://www.nouvelleURL');

La requête suivante met à jour les liens dans la table wp_postmeta:

UPDATE wp_postmeta SET meta_value = replace(meta_value,'http://www.ancienneURL','http://www.nouvelleURL');

Remarques importantes:

  • ancienneURL: l’ancienne adresse URL de votre site / l’ancien chemin à corriger
  • nouvelleURL: la nouvelle adresse URL de votre site / le nouveau chemin correct
  • si vous passez vos liens en https, n’oubliez pas de remplacer http:// par https:// dans la nouvelle URL
  • si vous n’utilisez pas le préfixe wp_ par défaut dans vos tables, n’oubliez pas de l’adapter

Cliquez ensuite sur le bouton Exécuter (4).

  • Merci pour cette méthode à priori réservée à des personnes un tant soit peu averties. Des extensions tels que Duplicator ou Wp Clone font bien le job également sans mettre les ains dans le code.

  • Bonjour, et si je veux juste changer les http en https dans mes articles, quel serait la bonne requête ? je ne sais pas si je peux adapter une de vos requêtes ?

    Merci 🙂

      • Merci pour votre réponse.

        Vous pensez que j’ai bon avec cette requête?:

        UPDATE matable SET macolonne = replace(macolonne, ‘http’,’https’);

        Je suis sous Mysql 5,5

        • Non, cela ne fonctionnera pas. Je vous conseille d’installer et activer cette extension si vous avez des difficultés à adapter ces requêtes. Tout se fera ainsi automatiquement.

  • bonjour après avoir fait cette méthode c’est adire pour déplacer mon site en ligne en locale les commandes ont marchés avec succès mais il y a un soucis.
    je tombe sur la page de maintenance de mon site et lorsque je tape l’url local suivi de wp-admin : http://127.0.0.1/edsa-sectester/wp-admin/ j’ai un message du genre: 127.0.0.1 n’autorise pas la connexion
    je comprends rien. merci de m’éclairer
    et la petite remarque l’url passe en https lorsque je veux me connecter a la base de donnée peut être que c’est de la que vient mon problème comment corriger cela aussi merci.

  • Bonjour,
    comment faire si on à changer de nom d’utilisateur ?
    car quand on import par exmple le chemain path pour les image à toujours l’ancien path avec l’ancien nom d’utilisateur,
    car on peux pas avoir deux nom d’utilisateur identique sur WHM.
    Merci pour votre aide

  • {"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}
    >