Jean ROCHARD
Je partage ma passion de Wordpress dans des articles techniques sur les plugins, thèmes, nouveautés geek et optimisation SEO "on-site".
Jean ROCHARD

@jean_rochard

Chez Terre Digitale, on mange du Wordpress dès le petit-dej'.
Petit guide pour mettre en place les Facebook Instant Articles à partir de vos posts Wordpress : https://t.co/lSbzdM6z9j - 7 mois ago

Avez vous déjà essayé de transférer vos posts d’un site à un autre ? C’est assez simple grâce à  l’exporter XML intégré à WordPress. Lorsque vous repartez sur un site « vide », vous pouvez même facilement reprendre vos images à la une en les réimportant également. Toutefois, quand vous faites ce transfert vers un blog déjà existant, vous rencontrez un GROS problème : les identifiants des images à la une ne sont plus les même et vous récupérez donc vos contenus mais sans leurs belles images associées… Gênant lorsque le volume d’articles est important et que vous ne souhaitez pas passer votre journée à modifier tous vos articles… Et bien, je vous propose ici une méthode pour résoudre ce soucis. C’est parti !

migration

Nous nommerons « site source » le site initial de vos articles et « site cible  » le site de destination de vos articles.

1) Exporter vos images à la une à partir du site source

Première étape, créer le fichier d’export des images à la une en installant le plugin Export Featured Images sur votre site source. Puis aller dans « Outils -> Export Featured Images » et lancer l’export des images de posts :

export_image_une

Vous téléchargez un fichier que vous pouvez par exemple nommer imagesold.xml

2) Exporter vos articles à partir du site source

Toujours à partir du site source, aller dans « Outils -> Exporter » et sélectionner les articles :

export_posts

Vous téléchargez un fichier que vous pouvez par exemple nommer postsold.xml

3) Importer vos images à la une sur le site cible

Sur le site cible, pour importer les images à la une à partir du fichier généré à l’étape 1, vous pouvez soit passer par l’importer XML WordPress soit passer par des lignes de commande (WP-CLI).

Pour l’importer XML, il faut aller dans « Outils -> Importer », installer le plugin en cliquant sur « WordPress » puis choisir le fichier sur son ordinateur :

install_importer

Le passage par les lignes de commande permet de ne pas avoir d’erreur en cas de gros volume d’images qui pourrait dépasser le timeout de votre connexion HTTP. Pour cela, envoyez votre fichier XML par FTP (à la racine du site par exemple), installez WP-CLI si besoin puis connectez vous en SSH et lancez les commandes suivantes :

wp plugin install wordpress-importer --activate
wp import imagesold.xml --authors=create

Vous pouvez préciser les auteurs dans un fichier csv comme indiqué dans la documentation de l’import WP-CLI. N’oubliez pas de supprimer votre fichier XMl source.

Pour finaliser l’import, vous pourrez regénérer les thumbs aux bons formats avec le plugin Regenerate Thumbnails.

4) Exporter les images à la une à partir du site cible

Pour pouvoir comparer les identifiants des images, nous allons avoir besoin d’une liste des images avec celles que nous venons d’importer. Pour cela, utilisons le plugin WP Attachment Export :

wp_attachment_export

Ce plugin va générer un fichier avec les images du site cible que nous pouvons nommer imagesnew.xml

5) Lancer un script pour « appareiller » les identifiants

Voici un script Groovy (exécutable à partir de la groovy console) pour faire la comparaison entre vos différents fichiers et générer un nouveau fichier de vos articles à importer, avec les identifiants des images mis à jour. Le script est simple : il compare les titres et remplace les anciens identifiants par les nouveaux.

Le fichier généré peut par exemple être nommé postnew.xml

6) Importer les articles sur le site cible

Utiliser maintenant l’importer XML WordPress (menu « Outils -> Importer ») pour transférer vos articles en utilisant le fichier postnew.xml. Vous pouvez aussi importer vos articles avec WP-CLI, comme précédemment pour les images.

7) Importer les images externes situées dans le contenu

Dernier point, les liens vers les images situés dans vos articles sont encore « à l’ancienne adresse ». Vous pouvez utiliser le plugin Import External Images pour finaliser votre importation et tout retrouver sur votre site cible.

Et hop, vos nouveaux articles ont été transférées avec un lien correct vers leurs images à la une !

NB : comme alternative, notons aussi qu’il existe des plugins comme Set All First Images As Featured ou Quick Featured Images qui vous permettront de mettre comme image à la une la première image de votre article. Pratique pour éviter les manipulations évoquées ci dessus ; mais seulement si vos articles s’y prêtent !