Changer d’hébergeur, dupliquer un site pour un environnement de recyclage, migrer un contenu isolé vers un autre WordPress : ces situations reviennent souvent et n’exigent pas nécessairement un dump complet de base de données.
Le format WXR au cœur du mécanisme
L’export, disponible dans Outils > Exporter, génère un fichier au format WXR (WordPress eXtended RSS), un XML enrichi de balises propres à WordPress au-dessus du format RSS standard. On peut restreindre l’export à un type de contenu, un auteur ou une plage de dates. Ce fichier est produit par la fonction interne export_wp() du fichier wp-admin/includes/export.php.
L’import, lui, ne fait plus partie du cœur depuis WordPress 4.0 : il nécessite l’extension officielle « WordPress Importer », qui s’appuie sur la classe WP_Import pour recréer les contenus, réattribuer les auteurs et télécharger les médias référencés.
Exemple en ligne de commande avec WP-CLI
wp export --post_type=post --dir=/tmp
wp import fichier.xml --authors=create
Pièges fréquents
- Le WXR ne transporte pas les réglages du site (widgets, menus, options de thème) : seul un export de base de données complet couvre cet aspect.
- Les identifiants (
ID) des contenus ne sont pas préservés lors d’un import : toute référence codée en dur vers un identifiant de contenu doit être revérifiée après la migration. - Un import volumineux peut dépasser le temps d’exécution maximal PHP : la commande WP-CLI, exécutée en ligne de commande, contourne cette limite plus proprement que l’écran d’administration.