ModificationsAprès avoir joué avec WordPress 2.0.4 pour le compte du Centre de Kriya Yoga France et questionné à ce sujet par creatix, je me suis mis en tête de mettre le blog à jour. Mais quitte à mettre à jour, autant le faire proprement, c'est à dire de manière pérenne. J'ai donc étudié les nouvelles fonctions apportées par WP2+ et j'ai pu me défaire d'au moins 5 ou 6 plugins dont les fonctions sont maintenant inclues par défaut dans WordPress. Mais ce n'est pas tout : ma base de données WP 1.5+ était encodée en iso-8859-15 (caractères de l'Europe de l'Ouest, avec le symbole Euro), ce qui était bien en 2004 mais qui ne l'est plus en 2006. Hé oui, les temps changent et les encodages de caractères avec eux !

Place donc à l'UTF-8, un codage qui se veut universel (il permet de représenter des milliers de caractères de toutes sortes de langues, dont l'ensemble des caractères spécifiques français), compatible (un texte en US-ASCII est codé identiquement en UTF-8) et visant l'interopérabilité (chaque caractère est codé sur une suite de un à quatre octets ; UTF-8 a été conçu pour être compatible avec certains logiciels originellement prévus pour traiter des caractères d'un seul octet).

Transformation de la base de données iso-8859-15 en UTF-8

Le plus délicat est de convertir les données iso-8859-15 accentuées en données UTF-8 avec les différents accents codés sur les fameux 4 octets. Pour effectuer cette conversion, voici les étapes que j'ai fini par trouver, après plusieurs exports/imports de ma base.

  1. Exportez votre base au format gzip.
  2. Créez une nouvelle base sans aucun interclassement.
  3. Si vous utilisez PHPmyadmin, importez votre base de l'étape 1 en sélectionnant "jeu de caractères : binaire" lors de l'import. C'est ce qui transforme nos fameux accents en caractères codés.
    Si vous utilisez MySQLFront, importez le fichier .sql de votre base en mode ASCII dans la nouvelle base de données.
  4. Voilà, les données de votre base sont normalement en UTF-8 ! :-). Notez que vos fichiers de thèmes devront probablement être modifiés à cause des accents.
A lire :  Dropbox : accédez facilement à vos fichiers n'importe où

J'ai essayé plusieurs manière d'uploader le fichier : en mode UTF-8, en mode binaire, en mode ASCII et je crois que c'est ce dernier qui a finalement fonctionné comme attendu. A vrai dire, cela m'a quasiment pris une journée mais au final je suis content d'avoir migré cette base. Mieux vaut le faire lorsqu'elle pèse 5 Mo plutôt que dans quelques années lorsqu'elle en fera 50...

Régler l'erreur "capabilities.php on line 19"

Petite surprise une fois la migration effectuée : je suis tombé sur l'erreur suivante, inconnue du bataillon :

Warning: Invalid argument supplied for foreach() in /home/mjbiscay/public_html/wp2/wp-includes/capabilities.php on line 19

Cette jolie erreur est un petit cauchemar puisqu'elle prive l'administrateur... du droit d'administrer. En gros, WordPress vous reconnaît comme utilisateur, il sait que vous êtes admin mais il attend de vous une poignée de main magique : oui, encore du SQL ! Pendant l'importation des tables, une valeur - une chaîne très longue - est mal passée. Il va donc falloir l'éditer à la main :

  1. Sous MySQLFront ou PHPmyadmin, ouvrez la table wp_options
  2. Trouvez la clé appelée wp_user_roles et remplacez sa valeur par cette longue chaîne de caractères, sur une ligne :
    
    a:5:{s:13:"administrator";a:2:{s:4:"name";s:13:"Administrator";s:12:"capabilities";a:30:{s:13:"switch_themes";b:1;s:11:"edit_themes";b:1;s:16:"activate_plugins";b:1;s:12:"edit_plugins";b:1;s:10:"edit_users";b:1;s:10:"edit_files";b:1;s:14:"manage_options";b:1;s:17:"moderate_comments";b:1;s:17:"manage_categories";b:1;s:12:"manage_links";b:1;s:12:"upload_files";b:1;s:6:"import";b:1;s:15:"unfiltered_html";b:1;s:10:"edit_posts";b:1;s:17:"edit_others_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:10:"edit_pages";b:1;s:4:"read";b:1;s:8:"level_10";b:1;s:7:"level_9";b:1;s:7:"level_8";b:1;s:7:"level_7";b:1;s:7:"level_6";b:1;s:7:"level_5";b:1;s:7:"level_4";b:1;s:7:"level_3";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;}}s:6:"editor";a:2:{s:4:"name";s:6:"Editor";s:12:"capabilities";a:19:{s:17:"moderate_comments";b:1;s:17:"manage_categories";b:1;s:12:"manage_links";b:1;s:12:"upload_files";b:1;s:15:"unfiltered_html";b:1;s:10:"edit_posts";b:1;s:17:"edit_others_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:10:"edit_pages";b:1;s:4:"read";b:1;s:7:"level_7";b:1;s:7:"level_6";b:1;s:7:"level_5";b:1;s:7:"level_4";b:1;s:7:"level_3";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;}}s:6:"author";a:2:{s:4:"name";s:6:"Author";s:12:"capabilities";a:8:{s:12:"upload_files";b:1;s:10:"edit_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:4:"read";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;}}s:11:"contributor";a:2:{s:4:"name";s:11:"Contributor";s:12:"capabilities";a:4:{s:10:"edit_posts";b:1;s:4:"read";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;}}s:10:"subscriber";a:2:{s:4:"name";s:10:"Subscriber";s:12:"capabilities";a:2:{s:4:"read";b:1;s:7:"level_0";b:1;}}}
    
  3. Sauvegardez la clé. Vous devriez désormais être en mesure d'accéder au module d'administration.

SQLFront ? Et PHPmyadmin ?

J'ai effectué toutes ces opérations en utilisant SQLFront pour la simple raison qu'il est beaucoup plus rapide pour importer les données (et qu'il les a importé correctement, ce qui est loin d'être évident avec PHPmyadmin) et qu'il est très aisé de modifier les valeurs de champs (un clic suffit). A vous de voir ce qui vous convient le mieux. PHPmyadmin est certainement installé sur votre serveur. SQLFront - anciennement MySQL-Front - est à installer sur votre machine.

A lire :  Ubuntu : règler le problème du clavier QWERTY au démarrage

Conclusion

Voilà, une bonne chose de faite même si cela ne change absolument rien à la présentation générale du blog. Tout se passe sous le capot mais il est bon de vérifier les rouages de temps à autre. Et maintenant je suis tranquille pour un bon petit moment ;-)

Pour développer votre projet WordPress ou Woocommerce, faites appel à mon expertise pour réaliser un site rapide, performant et fonctionnel.

Contactez-moi

Si vous avez trouvé une faute d’orthographe, informez-nous en sélectionnant le texte en question et en appuyant sur Ctrl + Entrée s’il vous plaît.

Articles en rapport:

Transition vers WordPress 2.0.4 et transformation d'une base de données iso-8859-15 au format UTF-8

par Matt Lecture: 5 min
8

Pin It on Pinterest

Share This

Spelling error report

The following text will be sent to our editors: