Migrer de b2evolution vers WordPress

Tutorial

Le principe de la migration est fort simple:

  • On exporte les articles au format Movable Type via le skin que j’ai créé : _MtExport
  • On nettoie le fichier généré.
  • On l’importe dans WordPress via l’outil d’import
  • On sourit

J’ai eu à créer un skin afin d’extraire le maximum de données du site. Des plugins précédents ne permettaient qu’une sortie partielle. J’ai essayé de calquer au maximum avec les spécifications du format Movable Type d’import/export.

_MtExport est capable de sortir :

  • AUTHOR
  • TITLE
  • BASENAME
  • DATE
  • STATUS
  • ALLOW PINGS
  • ALLOW COMMENTS
  • PRIMARY CATEGORY
  • CATEGORY: (Toutes les autres)
  • KEYWORDS: (les tags)
  • BODY

Concernant les commentaires, ils sont préservés et les champs suivants sont extraits:

  • COMMENT:
    • AUTHOR
    • EMAIL
    • DATE
    • URL
    • IP

Plutôt complet non ?

Alors, plongez-vous dans ce guide pour connaitre le reste et télécharger _MtExport

Préparation

Sauvegardez par le moyen qui vous convient votre base de données b2evolution et WordPress.

Essayez tant que faire ce peut de monter de version de b2evolution. _MtExport a été écrit pour la version 4.1.2

Désactivez les plugins qui s’insèrent dans la sortie de façon un peu trop violente. Je pense particulièrement aux plugins comme « Sociable », « Technorati Tags », « Creative Common ». Ces plugins alourdissent considérablement la sortie avec quelque chose qui n’a absolument rien à voir avec l’article et que WordPress saura de toute manière régénérer.

Essayez aussi d’avoir un format de génération des url des pages que vous pourrez facilement réutiliser dans WordPress. J’utilisais le classique /<Année>/<Mois>/<Jour>/<Permalink> et vous verrez l’intérêt car mon skin exporte correctement le Permalink.

Skin

La première des choses à faire des de télécharger mon skin_MtExport et l’installer dans le répertoire « Skins » de b2evolution. Il suffit de décompresser l’archive et déposer le répertoire _MtExport.

MtExportDownload MtExport (Version 1.0)

Vous pouvez obtenir ou réutiliser ce projet sous licence CeCILL-B. Les sources sont disponibles sur github : https://github.com/FrenchW/MtExport

Puis, dans l’interface d’administration, activer ce nouveau plugin. Vérifiez que celui-ci fonctionne en vous rendant à l’url suivante : http://<votreBlog>/?tempskin=_MtExport

Si éventuellement votre blog compte plus de 500 posts, allez éditer le fichier « index.main.php » du plugin et augmentez la valeur à la ligne 3 (idem pour les commentaires) :

$MaxItems = 500;

Transfert des médias

Votre installation de b2evolution comporte normalement des images et médias uploadés au fil de la rédaction des articles. Si tout a été fait correctement, les fichiers doivent se trouver dans le répertoire suivant de b2evolution : /media/blogs/<NomBlog>/

Transférez ces fichiers et dossiers dans votre nouvelle installation  de WordPress. Personnellement, je les ai mis dans /wp-content/uploads/old_b2/ pour ne pas les confondre avec l’arborescence que va créer WordPress.

Changement des liens

Une fois que vous avez obtenu l’exportation au format Movable Type via le lien http://<votreBlog>/?tempskin=_MtExport, il faut copier/coller le contenu dans un nouveau fichier texte que vous nommerez « mt-export.txt ».

Avec votre éditeur de texte préféré, faites rechercher/remplacer et modifiez tous les liens de média. J’ai donc, suite aux url que je vous ai donné, remplacé « /media/blogs/FrenchW/ » par « /wp-content/uploads/old_b2/ ».

Enregistrez le fichier en faisant très attention qu’il soit enregistré en encodage UTF-8. (j’ai eu des soucis avec l’ANSI que me sortait par défaut Textpad)

Nettoyer WordPress

Le script SQL suivant nettoie votre nouveau site WordPress de tout contenu « Article ». Il préserve uniquement les pages enregistrées et publiées !! Attention !!

TRUNCATE FW_wp_comments ;
TRUNCATE FW_wp_commentmeta ;
TRUNCATE FW_wp_postmeta ;
DELETE FROM `FW_wp_posts` WHERE `post_type` <> 'page';
TRUNCATE FW_wp_terms ;
TRUNCATE FW_wp_term_relationships ;
TRUNCATE FW_wp_term_taxonomy ;

Sauvegardez votre base de données propre pour y revenir facilement.

Import dans WordPress

Finalement, on en vient à la partie la plus facile.

Commencez par recréer les comptes correspondants aux éditeurs qui vous aviez sur l’ancien blog.

Puis, allez dans Outils/Importer

Imp1

Sélectionnez « Movable Type and TypePad » et acceptez de l’installer s’il n’est pas présent.

Imp2

L’importeur vous demandera ensuite de lui donner le chemin du fichier mt-export. txt.

(A noter que s’il dépasse 1 Mo, je vous conseille d’aller le déposer dans le répertoire /wp-content/ du blog).

Il vous demandera en premier lieu de faire correspondre l’ancien éditeur avec un compte actif (ce qui est mieux que de le créer là, à la volée)

Imp3

Passée cette étape, l’importeur va mouliner un petit peu, recréer catégories, tags et commentaire. Il est important d’avoir un WordPress absolument vide (voir script SQL) car sinon, il abonde tags et catégorie d’un numéro d’ordre pour ne pas les confondre avec l’existant.

Votre importation est terminée, vous avez normalement tout récupéré et avez migré sans douleur de b2evolution à WordPress.

Refaites une sauvegarde si le résultat vous convient et si vous êtes content (ou pas d’ailleurs… commentez 😉 )

3 réflexions au sujet de « Migrer de b2evolution vers WordPress »

  1. Bonjour
    merci pour ce tuto qui m’a été d’un grand secours

    il fonctionne parfaitement pour recuperer des posts et les commentaires
    par contre, j’ai un soucis pour recuperer les liens des images/fichiers liés aux posts en question quand le lien n’est pas directement ecrit dans le post mais fait par l’interface de B2. que dois-je ajouter comme lignes dans votre script pour extraire les liens associés ?
    merci encore

    • Bonjour Christian, je ne pense pas avoir été confronté à ce problème. Pouvez-vous copier/coller un exemple d’url tel que rendu dans le fichier d’export ?
      Peut-être que le plus simple, est de faire un dump sql, regarder comment c’est enregistré, faire de remplacements puis réinjecter avant de jouer le script d’export…
      Pas top, mais, en l’absence d’exemple concret, c’est ce qui me vient…

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *