Trucs et astuces WordPress

30% des sites web tourment avec WordPress. WordPress est une plate-forme puissante qui permet de concevoir divers types de sites : blogs, sites généraux, sites vitrine, sites e-commerce, etc … La partie administration du site est extrêmement complète, et permet de gérer de nombreuses fonctionnalités du site.

La communauté WordPress est très active et propose de nombreux thèmes et plugins permettant d’enrichir de façon non négligeable les possibilités de base. Le système est ouvert, les sources sont disponibles, et le développeur peut apporter sa touche pour que le système réponde à ses besoins.

L’éclipse lunaire totale du 4 avril 2015 prise à Monument Valley, Utah, États-Unis, avec le texte Tips & Tricks WordPress et le logo wordpress en surimpression

Je présente dans cet article, quelques trucs et astuces, complétés au fur est à mesure. Un article sur des snippets (codes courts) pour WordPress est aussi disponible sur ce site.

Debug

Pour obtenir des informations sur les erreurs, il faut activer la constante WP_DEBUG dans le fichier wp_config.php à la base du site. Lors des appels externes, Ajax par exemple, les erreurs ne sont pas affichées. On peut cependant les récupérer dans un fichier log dans /wp-content/debug.log en activant la constante WP_DEBUG_LOG. Plus d’informations sur cette page de documentation.

Si l’on se trouve sur un site de production, où il faut vérifier une quelconque erreur qui se produit sans raison, on peut temporairement activer le debug en choisissant de ne pas afficher les erreurs et de les récupérer dans le fichier debug.log en définissant la constante WP_DEBUG_DISPLAY à false.

Une fois l’erreur résolue, on remet la constante WP_DEBUG à false.

Debug supplémentaire

Il se peut qu’il n’y ait aucun message d’erreurs ni en affichage, ni dans le fichier debug.log, mais l’on voit apparaître une marge disgracieuse en dessous de la barre d’administration dans le backend :

Wordpress administration, décalage de marge

Cette marge est due à une classe php-error dans le body de l’espace admin. Il peut être alors judicieux d’afficher la dernière erreur grâce au snippet :

Vérifier le référent Ajax

La fonction check_ajax_referer( $ajax_action = -1, $query_arg = false, bool $die = true )vérifie si la requète Ajax a été appelée du blog WordPress, ou si elle provient de l’extérieur. Si aucun argument n’est précisé, la fonction vérifie, pour tout appel, la clé _ajax_nonce ou _wpnonce (dans cet ordre) du tableau $_REQUEST. Si le booléen $die n’est pas précisé, et si la fonction échoue, alors elle tue le processus en lançant wp_die(). La fonction échoue si le nonce a été généré au-delà de 24 heures. Elle renvoie 2 si le nonce a été généré entre 12 et 24 heures. La fonction réussit si le nonce est bien lu, reconnu et valide depuis moins de 12 heures.

Pour contrôler un peu plus le comportement de la fonction, on peut préciser les arguments, et tester la valeur de retour. Exemple avec une class, le nonce est envoyé en $_POST à la clé security :

Soumettre un commentaire

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

Ce site utilise Akismet pour réduire les indésirables.