Mise à jour WordPress 3.0.1 difficile

wordpress Dimanche dernier, je me suis décidé à installer la dernière version de WordPress, la 3.0.1. Passage de version majeure, puisque l’on passe de la 2.x à la 3.x.

Côté nouveautés, on peut citer notamment la fusion avec WordPress MU (Multi-Utilisateurs) et donc la possibilité de gérer plusieurs sites avec une seule installation, une nouvelle gestion des menus (si le thème le supporte), l’amélioration de la taxonomie (classification plus fine) et enfin un nouveau thème par défaut exploitant toutes les nouvelles fonctionnalités.

Bref peu de choses qui m’intéressent vraiment, tant que je garde mon thème actuel… mais cela peut donner l’envie de partir d’un nouveau thème et de le personnaliser, probablement en utilisant les widgets, ce qui n’est pas le cas pour l’instant.

Toujours est-il que la migration s’est plutôt mal passée. La phase de mise à jour en elle-même s’est bien passée, deux clics une fois les fichiers copiés… la base de données est mise à jour… et hop, retour au blog, oui mais :

  • Tous les caractères accentués sont mal affichés (articles, titres, catégories, etc…)
  • Impossible d’afficher la page d’administration (page blanche)

Les caractères mal affichés

Pour une raison inconnue, tous les tables de la base de données sont passées en « latin1_general_ci » au lieu de « utf8_general_ci ». Si pour certaines tables cela ne pose pas de problèmes (valeurs numériques, etc…), il n’en est pas de même pour tout ce qui contient les beaux caractères accentués de la langue française, et donc : les articles, les commentaires, les noms de catégorie, etc…

Pour réparer ce type de problème, il faut modifier le type des tables en question, en les passant en format numérique d’abord, puis en les passant en utf-8, suivant ce principe :

ALTER TABLE table1 CHANGE colonne1 colonne1 BLOB;
ALTER TABLE table1 CHANGE colonne1 colonne1 TEXT CHARACTER SET utf8;

Et donc pour les tables suivantes :

  • wp_posts (les articles)
  • wp_comments (les commentaires)
  • wp_tags (les tags)
  • et peut-être d’autres si vos plugins utilisent la base de données…

On exécute alors via l’interface de phpMyAdmin les commandes SQL suivantes :

ALTER TABLE `wp_posts` CHANGE post_content post_content BLOB;
ALTER TABLE `wp_posts` CHANGE post_content post_content TEXT CHARACTER SET utf8;
ALTER TABLE `wp_posts` CHANGE post_title post_title BLOB;
ALTER TABLE `wp_posts` CHANGE post_title post_title TEXT CHARACTER SET utf8;
ALTER TABLE `wp_tags` CHANGE tag tag BLOB;
ALTER TABLE `wp_tags` CHANGE tag tag TEXT CHARACTER SET utf8;
ALTER TABLE `wp_comments` CHANGE comment_content comment_content BLOB;
ALTER TABLE `wp_comments` CHANGE comment_content comment_content TEXT CHARACTER SET utf8;
Les auteurs des commentaires peuvent aussi contenir des lettres accentuées :
ALTER TABLE `wp_comments` CHANGE comment_author comment_author BLOB;
ALTER TABLE `wp_comments` CHANGE comment_author comment_author TEXT CHARACTER SET utf8;

Concernant les catégories c’est la table wp_terms, mais la commande SQL renvoie une erreur, il faut donc modifier le type des colonnes name et slug à la main (toujours via l’interface phpMyAdmin), puis ressaisir les catégories comportant des accents (heureusement, c’est assez rapide si l’on n’a pas trop de catégories comportant des accents).

Une fois ceci fait, le blog était redevenu présentable.

La page d’admininistration

Après une petite recherche sur le forum wordpress, tout indique que c’est généralement dû à un plugin. Et effectivement, en les désactivant tous, la page d’administration n’est plus blanche, mais m’indique :

Vous n’avez pas les permissions nécessaires pour accéder à cette page.

C’est dans les moments comme ça qu’il faut garder son calme ! 🙁

Là aussi recherche sur le net, et le problème vient toujours de la base de données : dans la table wp_options, l’option user_roles contenait des caractères mal encodés (dans option_value). Dans la foulée, je l’ai également repassée en utf-8.

Revenons aux plugins : c’était finalement l’occasion de faire un peu de ménage, c’est-à-dire supprimer ceux que je n’utilise plus, et aller chercher les dernières versions des autres.

Le plus simple est alors de copier par FTP sur son pc le répertoire wp-content/plugins (histoire d’avoir une sauvegarde), puis recopier un par un ceux que l’on utilise, les activer, puis les mettre à jour si une nouvelle version est affichée disponible.
Mais là encore, ce ne fût pas simple : certains plugins ne sont plus compatibles, ainsi que certaines dernières versions… de plus, l’ordre d’activation peut avoir un impact…

Ainsi, le plugin wp-stats (v2.5) ne marche pas, et la dernière version du plugin WordPress.com Stats (1.7.2) non plus (mais la 1.6 fonctionne). Quant au plugin wp-dtree, il vaut mieux l’activer en premier… Je ne suis d’ailleurs même pas sûr qu’il fonctionne vraiment, les derniers articles n’apparaissant pas. Et tout cela chez Free, car l’hébergeur peut également avoir une influence sur ces résultats.

Bref une belle galère que cette mise à jour 3.0.1…

Laisser un commentaire

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