La migration de notre Blog Wordpress vers Ghost s'est effectuée sans accroc, mais la procédure n'est pas automatisée. Voici, dans les grandes lignes, comment procéder:

  1. exporter toutes les données de Wordpress en XML, et archiver le dossier uploads
  2. transformer au format Ghost 1.x avec wp2ghost
  3. importer dans Ghost 1.x
  4. effectuer la migration Ghost 2.x
  5. désarchiver uploads dans le dossier content/images de Ghost

NB: il n'existe pas à ce jour un script permettant de passer directement de Wordpress à Ghost 2.x

NB: le plugin Ghost WordPress Plugin n'a pas fonctionné pour nous.

Ce qui fonctionne

  • Posts: title, slug, content, page/post, featured, status, date de création/publication
  • Catgéories (converties en tags): name, slug, description
  • Tags: name, slug

Ce qui ne fonctionne pas

Le thème

Il n'existe pas de migration d'un thème Wordpress vers un thème Ghost, c'est une opération bien trop complexe. Il vous faudra soit faire un portage vous-même, soit trouver un thème Ghost facilement modifiable. Consultez le Marketplace pour vous faire une idée précise selon vos resources.

Les auteurs ne sont pas importés

Si vous avez un nombre important d'auteurs et de posts, il vous faudra trouver une procédure de migration supplémentaire.

Les catégories sont converties en tags

Dans notre cas, les urls des catégories Wordpress étaient définies sur /categories/*. Une simple redirection dans le fichier redirects.json de Ghost fonctionne parfaitement:

redirects.json (à importer depuis la section "Labs" de l'interface d'aministration Ghost):

[
    {
        "from": "^\\/categorie\\/(.*)$",
        "to": "/tag/$1",
        "permanent": true
    }
]

URL des fichiers uploads

L'url des images change, nous avions wp-content/uploads/* pour Wordpress, et maintenant /content/images/* pour Ghost. Il faut mettre en place une redirection ou corriger tous les contenus (ou bien les deux).

Corriger les images insérées dans les contenus

Auparavant, faire un backup de la base Ghost

  1. exporter les contenus de Ghost
  2. remplacer toutes les occurrences de wp-content/uploads/ par /content/images/
  3. effacer tous les contenus de Ghost
  4. réimporter l'export modifié à l'étape 1