Modifier la sémantique des titres des widgets WordPress

Pour ce premier article de blog je vais vous parler des titres des widgets. C’est pour moi un point important car dans la plupart des cas on ne respecte pas du tout l’architecture des titres.

Par exemple sur ce site, par défaut les widgets ont des titres de niveau 2. Ce code html est défini lorsqu’on créé une sidebar, et par défaut, les sidebar sont créées par les thèmes.

Les zones de widgets sont créées par la fonction register_sidebar() ou bien register_sidebars() lorsqu’on veut en créer plusieurs à la fois.

Exemple pour modifier les titres des widgets

Voici un bout de code pas bien compliqué qui va permettre de modifier tous les titres de widgets de TOUTES les sidebars : C’est le code mis en place sur ce site.

<?php
/**
 * Filtrer la structure des widgets des sidebar
 *
 * @see https://developer.wordpress.org/reference/hooks/dynamic_sidebar_params/
 *
 * @param array $params
 *
 * @return array $params
 */
add_filter( 'dynamic_sidebar_params', 'devwp_update_widget_struct' );
function devwp_update_widget_struct( $params ) {
   $params[0]['before_title'] = "<p class=\"widget-title\">";
   $params[0]['after_title']  = "</p>";

   return $params;
}

Il faudra bien entendu modifier la classe css pour qu’elle corresponde à la classe utilisée par votre thème. Suivant les thèmes, il y aura des ajustements à faire en css. Ici il a fallu que je redéfinisse la taille de police pour qu’elle corresponde à la taille des titres de niveau 2.

Ce code est à mettre dans le fichier functions.php de votre thème enfant (utilisez un thème enfant par pitié !) ou bien vous pouvez créer un mu-plugin.

On peut envisager un code un peu plus précis pour avoir des titres H4 sur la zone de widgets de droite, des H5 pour les widgets du footer, etc. Je ne dis pas que les titres H2 des widgets sont interdis ! Je dis simplement qu’ils ne doivent pas être imposés par un thème, et doivent être un choix justifié de votre part.


Publié

dans

par