Les 10 commandements du débuggeur de blog
Participant beaucoup au forum de support de WordPress en français, je suis souvent ammenée à répéter les mêmes recommandations. Autant en faire une check-list !
- Ton blog au validateur HTML passera
- Tes balises correctement fermera
- Ton article seul et ta home comparera
- Ton flux au validateur de flux soumettra
- Ton charset vérifiera
- Tes plugins désactivera
- Tes messages d’erreur analysera
- Ton codex lira
- Ton footer vérifiera
- Ton espace web et ta base de donnée ne confondra
Ton blog au validateur HTML passera
Si un code conforme aux recommandations du W3C n’est pas une absolue nécessité pour être bien positionné dans Google, c’est extrêmement utile pour débuguer un problème d’affichage (qui, la plupart du temps, provient d’un code non conforme).
J’utilise le validateur proposé dans les outils de l’extension Web Developper pour Firefox, qui est tout simplement celui du W3C, mais il y en a d’autres, notamment en français.
Les résultats sont clairs, ils listent tous les problèmes de compréhension de code par un navigateur. Il est possible de demander l’affichage du code, en dessous, et à ce moment là de voir ce qui se passe, pour corriger.
Une fois le code propre, on peut se concentrer sur les autres “vrais” problèmes (structure du CSS, erreurs de programmation etc.)
Tes balises correctement fermera
C’est la première erreur, la plus fréquente à faire, un moment d’inattention et hop ça y est, et ça génère des erreurs en cascade. C’est aussi la plus “économique” à corriger, une simple petite balise à rajouter, et hop, on peut se débarrasser d’une dizaine ou d’une centaine d’erreurs.
Pour savoir où se trouve le problème, il faut identifier la ligne où le validateur dit “opening tag was there”, c’est généralement autour de cette ligne que le problème se trouve. Sinon, il reste à reprendre le code source de la page html et à péniblement vérifier à la main, en commençant par les balises les plus profondes.
Ton article seul et ta home comparera
C’est le moyen le plus rapide, quand quelque chose se décale brusquement dans la mise en forme, pour vérifier si le problème est lié à un article spécifique, et récent, (par exemple une balise more placée au mauvais endroit et empêchant la fermeture d’un élément), ou si il est lié aux éléments globaux du blog, essentiellement la sidebar, le header et le footer. Cela permet de circonscrire un peu les recherches.
Ton flux au validateur de flux soumettra
Les flux internes de WordPress sont assez solides, donc quand le flux est cassé, c’est généralement à cause du contenu d’un article. Le validateur de flux, aussi proposé par le W3C et présent dans l’extension Web developer permet d’identifier le texte juste avant le problème… et de remonter à l’article fautif, pour le corriger.
Ton charset vérifiera
Le charset, ou la convention de codage des caractères accentués (tous ceux que l’anglais, langue de naissance de l’internet et de l’informatique n’utilisent pas) détermine ils seront codés dans la base, dans les pages composant le thème wordpress, et donc comment ils apparaîtront au moment de l’affichage.
Donc s’il y a des caractères bizarres, c’est que quelque chose a changé.
Par défaut, WordPress est en utf-8, même en français. Mais cela peut être différent si :
- cela a été modifié cela dans les options du blog
- le blog a été commencé avec une vieille version, aux temps anciens que les moins de 20 ans ne peuvent pas connaître et où l’utf-8 n’était pas répandu
- pour une raison ou une autre le thème est dans un autre charset, cela peut être le cas d’un thème “adapté” à partir d’un autre outil, notamment Joomla
Dans ce cas là, il faut vérifier la cohérence des codages, et les remettre en phase.
Attention : simplement changer l’encodage (on dit l’interclassement dans ce cas) de votre base ne résoudra pas le problème, car les caractères sont codés en utf-8, il faudra en plus la convertir. La solution la plus simple reste la mise en conformité du thème.
Enfin, certaines fonctions php, comme strftime qui permet de renvoyer la date dans un format local, renvoient par défaut des caractères autres que l’utf-8, en l’occurence le charset correspondant aux variables locales. Si elles sont utilisées dans un thème utf-8, il faut en plus les convertir avec utf8_encode. C’est un point à vérifier quand les caractères bizarres sont limités à certains endroits gérés par un plugin (et c’est la fin de la minute geek).
Tes plugins désactivera
Quand tout ça ne donne rien, on passe à la vérification des plugins.
Un plugin à lui tout seul peut poser problème, ou une combinaison.
On commencera donc par désactiver les deux ou trois derniers plugins, puis, si cela ne donne rien, tous les plugins, en réactivant ensuite un par un. (Si le problème persiste quand tous les plugins sont désactivés, on peut sauter cette étape, et tout réactiver d’un coup).
Tes messages d’erreur analysera
Php affiche des messages d’erreurs assez explicites, ou en tout cas assez spécifiques, indiquant dans quel fichier se trouve l’instruction qu’il ne peut pas traiter.
Cela permet de voir facilement certaines erreurs (oubli du $ devant les noms de variables, du ; à la fin de la ligne d’instruction, ou problèmes dans les chaînes de caractères, par exemple une apostrophe qui n’est pas correctement échappée et qui termine un texte à afficher prématurément).
Cela donne aussi une petite idée du coupable, plugin, fonction native, fichier de modèle…
Ton codex lira
Le codex, partiellement traduit par l’équipe de WordPress-fr, donne une documentation précise, à la fois sur la logique globale de WordPress, des guides sur l’installation, ou d’autres procédures et une documentation détaillée sur les options des fonctions.
Lire quelques grandes sections, comme les marqueurs de modèle ou la boucle permet au moins d’avoir une idée de ce que WordPress peut faire.
Ton footer vérifiera
Les thèmes peuvent parfois avoir des fonctions cachées dans leurs footers, soit honnêtes, simplement de l’encryptage java pour éviter qu’on enlève le lien retour, soit moins agréables, iframes ou autres.
Il suffit que le site sur lequel ces fonctions pointent soit inaccessibles pour qu’une erreur apparaisse.
En règle générale, ne pas prendre de thème dont on ne comprend pas une partie du code.
Ton espace web et ta base de donnée ne confondra
Il y a besoin de deux choses pour faire fonctionner WordPress : un espace Web, chez un hébergeur, où on place les fichiers contenus dans le zip. Il faut pour y accéder :
- une adresse ftp
- un nom d’utilisateur
- un mot de passe
La deuxième chose, c’est une base de données, MySQL, où vont être stockés toutes les options, les messages, les commentaires, les utilisateurs.
Elle se trouve “ailleurs”, sur un serveur de base de données. La plupart du temps, celui-ci doit être créé, à la demande, il est aussi possible qu’une base soit créée par défaut, selon les hébergeurs.
Il faut pour que WordPress y accède :
- l’adresse du serveur, ou host. Cela peut être “localhost” (de moins en moins souvent), cela peut être autre chose, cela dépend des hébergeurs
- un nom d’utilisateur
- un mot de passe
Et ce ne sont pas les mêmes que pour l’espace FTP.
A priori, pour les connaître, il faut se rendre dans l’onglet concernant la gestion des bases de données chez son hébergeur, et cela apparaitra dans les détails de la base. Si il n’y a pas d’onglet… il y a de fortes chance pour que l’hébergement n’ait pas de base !
Et après, si rien ne marche ?
Cela résout déjà pas mal de problèmes. Mais il reste une communauté très active pour vous aider : le forum de support de WordPress en français, www.wordpress-fr.net.
Article très intéressant
Que de bons conseils, mais tout reste à faire ;-)
Profitant déjà de tes précieux conseils sur le forum de support de Worpress je suis ravis d’être tombé sur cet article.
Je m’y met de suite.
Merci :-)
J’aime bien cette “bible” pour éviter de nombreuses erreurs .
En favoris !!
A +
Bonjour Viviane, le “meilleur moyen” est de les placer au bon endroit au moment de la création de l’article.
Je suis passée voir votre site, vous utilisez des div pour faire des mises en forme spécifiques à chaque article, ce n’est peut être pas la meilleure solution.
Quoi qu’il en soit, en appliquant cette mise en forme APRES l’insertion de la balise more, d’une part au paragraphe qui se trouve avant, et ensuite à ce qui vient après, vous n’aurez plus ce problème
->(par exemple une balise more placée au mauvais endroit et empêchant la fermeture d’un élément)
Bonjour,
j’ai ce problème justement sur mon blog. La balise coupes mes DIV et détruit ma mise en page. Y’a-t-il un possibilité d’inclure cette balise sans devoir fermer et rouvrir toutes mes balises ?
Merci pour votre aide.
Bonsoir,
J’ai continué entretemps d’écumer le web et finalement, il s’agit bien d’un “bug”. La balise more coupe l’article sans fermer les balises actives. Je suis donc en train d’inclure la balise more en fermant puis rouvrant toutes les balises dans mon texte. Ça m’oblige à un retour à la ligne et du code à rallonge, mais en appliquant une bordure négative, j’arrive à “coller” le div suivant sans trop casser la continuité de mon texte.
Merci pour votre réponse rapide et de m’avoir confirmer le problème de balises ;-)
Bonne continuation,
Viviane.
Plutôt que d’un “bug” je dirais une limitation de l’outil. L’utilisation “aveugle” de l’éditeur html génère souvent des horreurs de code.
Cela dit il existe un plugin qui a été développé pour fermer automatiquement les balises avec l’utilisation de cette balise more, mais j’ai totalement oublié son nom.
merci marie aude mais … ta page contient quand même 30 erreus au validateur !!!!
Oui… et ? Comme il n’y a pas de problème d’affichage, je n’ai pas besoin de débugguer :)
Parti avec 21 erreurs (réelles de balise) J’arrive à 10, et franchement ça ressemble à des erreurs de parsing du fichier. Par ailleurs, les 11 “erreurs” supprimées ne changent rien à l’affichage et encore moins à mon problème de saut de ligne vides…
alors bon…
Je suppose que ce message un peu énigmatique fait référence à un problème posé sur le forum wordpress.
Un peu de contexte ne serait pas inutile (genre faut il vraiment plonger à travers tous les messages du forum pour retrouver l’exposé du problème ?)
Par ailleurs, ce post est une liste de choses utiles à faire. Pas une recette miracle pour tout résoudre .
Alors bon… comme ça, pas vraiment possible de vous aider plus.
PS : il y a un autre post sur ce blog qui pourrait vous intéresser : l’underscore n’est pas un séparateur reconnu par Google…
“Ton blog au validateur HTML passera” => j’ai fait le test avec ce blog et il y a quelques erreurs :-) Je dis ça mais je constate que j’en ai tout un paquet. Vérifier son site au validateur c’est bien mais faut-il encore résoudre les erreurs. Pour la plupart, je ne vois pas où est le problème. Grrr…
Merci pour ce billet, ça m’a donné du travail pour les fêtes.
Oui je sais qu’il y a des erreurs :) mais elles ne me gênent pas :)
Pour votre blog (joli) vous avez mis le compteur analytics trop haut (il faut le mettre avant la cloture du head, pas avant l’ouverture), donc le doctype n’est pas pris en compte et vous êtes validé par rapport à une syntaxe HTML 4…
Joli blog, cela dit
Oh ! C’est magique, vous avez résolu deux problèmes majeurs que je peinais à trouver. C’était donc ça. Merci. Merci.
Bon, je vais tenter de corriger les erreurs au validateur mais il me faudrait alors trouver une solution pérenne pour éviter les erreurs lors de la rédaction d’un post. Il n’existe pas un plugin qui valide le code dans l’interface admin ?
Merci pour le blog. Je découvre le vôtre avec intérêt.
Merci :)
On peut demander à WordPress de corriger les balises mal fermées, mais d’expérience ça fait plus de problèmes qu’autre chose. De plus les fermetures de balise ne sont pas les seules erreurs de code possible.
En bref je ne connais pas de plugin qui fasse ça, et si j’en trouvais un e ne serais pas certaine de l’utiliser :)
Pas qu’il fasse le travail à notre place, on sait l’horreur que c’est. Une sorte de correcteur de syntaxe html. A l’image du correcteur orthographique, tu aurais des corrections soulignées. Ce serait plutôt de l’ordre de l’assistant visuel. Après, chacun corrige à sa guise.
Oui ça serait une bonne idée. Mais je n’en connais pas. A développer :)