Migration blogger -> WordPress

Sans raison spéciale, j’ai décidé de passer le blog de Blogger vers WordPress, en même temps, ça fait un changement de nom de domaine et d’adresse de flux rss, j’en profite pour résumer les étapes de migration.

Installation de wordpress

Vu et revu dans maintes blogs, c’est pas la peine d’y revenir en détail.

Migration des articles et commentaires

WordPress facilite bien les choses (même si c’est perfectible), il suffit d’aller dans outils->importer, de sélectionner Blogger et de se laisser guider.

2 choses; si vous utilisiez les tags sur Blogger, ces derniers sont transformés en catégories et les sites de ceux qui ont postés un commentaire ne sont pas récupérés, vous (l’auteur) y compris.
Pour les tags, rien de plus simple, il faut repasser par la cas outils->importer et sélectionner Convertisseur de catégories et mots-clefs.
Pour les commentaires, il faut procéder par étapes, d’abord, rectifier nos informations (celle de l’/des auteur(s)):

update wp_comments, wp_users set wp_comments.comment_author_url='url_de_votre_site',
  wp_comments.comment_author_email='email',
  wp_comments.user_id=wp_users.id
where wp_comments.display_name = wp_comments.comment_author;

Ensuite, remplir les informations des autres, pour celà, on va utiliser la fonction d’export de Blogger depuis paramètres->exporter le blog. On aura un fichier au format Atom qu’on pourra traiter de la manière suivante:

xmllint --format fichier_exporte |
  grep -B 1 "" | grep -v pseudo_de_l_auteur |
  sed  -n -e "// { N
    s|\(.*\).*\(.*\)|update wp_comments set comment_author_url='\2' where comment_author='\1';|
	p }" |
  sort |
  uniq

La sortie est à coller dans le client mysql.

Redirections des liens

A ce stade, le blog devrait fonctionner avec les bons articles et commentaires, il nous reste plus qu’à garder une cohérence entre les liens pour ne pas dérouter les anciens lecteurs.

Premièrement, il nous faut rediriger le nom de domaine en blogspot.com vers le nouveau, depuis l’interface de configuration de Blogger: Paramètres->Édition et indiquez-y votre nouvelle adresse.

Blogger fait bien à ce niveau là car il redirige avec le code 301 qui permet d’indiquer au moteurs de recherche que le site a changé d’emplacement.

Par contre, Blogger n’a pas la même structure de lien que WordPress (enfin ça dépend de la structure que vous avez choisi, personnellement, c’est /%category%/%postname%), donc pour garder un semblant de cohérence, j’ai modifier le .htaccess (à la racine du blog):

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} .*\.html$
RewriteRule . /ex_blog.php [L]
RewriteCond %{REQUEST_URI} .*feeds
RewriteRule . /ex_rss.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

Sans oublier, un:

chmod go-w .htaccess

pour éviter que WordPress réécrive par dessus.
Bon, je me suis pas pris la tête, deux fichiers php au lieu d’un mais on peut tout à fait utiliser un seul, ex_blog.php:


ex_rss.php:


Pour les flux, je renvois toujours le général, la flemme…

Bon avec tout ça, je devrais avoir un minimum de code 404.