Pré-requis
Ce tutoriel repose sur WP-CLI. De nombreux hébergeurs le proposent désormais nativement.
Si vous ne disposez pas de WP-CLI sur votre serveur, contactez votre hébergeur web pour qu’il l’installe.
Effectuez une sauvegarde de votre base de données au préalable. La sécurité d’abord.
Un accès SSH est nécessaire. Ce tutoriel s’adresse aux développeurs WordPress. Toutefois, il est relativement facile à suivre pour les débutants.
Qu’est ce que WP-CLI ?
C’est une interface en ligne de commande pour WordPress (WordPress Command Line Interface, en Anglais), soit en abrégé WP-CLI.
Le projet est officiellement maintenu par Automattic et soutenu par de nombreux hébergeurs.
A l’aide d’un simple terminal (Windows, Mac, Linux), vous allez pouvoir tout modifier dans la base de données de votre site WordPress en exécutant des commandes listées ici.
Remplacer les URLs de la base de données WordPress en quelques secondes
WordPress stocke ses URLs en absolue, c’est à dire, sous cette forme https://www.example.com/. Inconvénient, lors d’un changement de nom de domaine (ex: passage d’un site en local à un site de production), vous allez devoir modifier vos URLs par les nouvelles.
Grâce à WP-CLI, vous allez pouvoir effectuer ce changement en quelques secondes et sans aucune extension. C’est sans nul doute la méthode la plus rapide et efficace pour effectuer ce genre de manipulation. Une extension WP sera bien plus lente et limitée par votre configuration PHP et elle risque de laisser des traces soit en base, soit sur votre serveur.
La première étape est d’ouvrir une connexion SSH à l’aide d’un terminal.
Puis de saisir la commande suivante depuis le dossier web public où est installé WP :
wp search-replace 'http://example.local/' 'https://example.com/'
On indique l’URL de départ, http://example.local/, puis l’URL finale, https://example.com/.
Validez par Entrée.
Patientez quelques secondes en fonction de la taille de votre base de données.
Le récapitulatif des changements effectués apparait alors sous forme de tableau.
Réitérez l’opération pour les URLs sans le slash de fin comme ceci :
wp search-replace 'http://example.local' 'https://example.com'
Et voilà ! Vos URLs sont migrées.
Vous remarquerez dans notre exemple, que nous avons également changé le protocole de « http » vers « https ». Et oui, vous pouvez utilisez cette commande pour migrer vos URLs vers leurs versions sécurisées. Attention, cela nécessite d’autres manipulations dont la mise en place d’un certificat SSL.
Pour aller plus loin
La commande wp search-replace dispose de très nombreux arguments comme :
- –skip-tables=<tables> : pour exclure certaines tables à modifier, utilisez des virgules pour séparer les noms des tables, wildcard supportés, ex « wp_*options » ou « wp_post* » (notez l’astérisque)
- –dry-run : permet d’effectuer un test à vide avec récapitulatif des changements sous forme de tableau
N’hésitez pas à consulter le handbook pour en savoir plus sur WP-CLI, créez vos propres scripts, effectuez des actions de masse sur vos sites et bien plus encore.