Changer le widget Meta de wordPress

Le widget Meta
Le widget Meta

Afin de changer le widget Meta de wordPress pour le rendre un peu plus conforme à ce que l’on désire, en particulier pour enlever certains liens ou pour en ajouter d’autres, on redéfinit le widget dans functions.php de son thème.

Afin de ne pas surcharger le fichier functions.php, au risque de ne plus pouvoir s’y retrouver facilement, on va créer un fichier widgets/widget-meta.php dans le répertoire de son thème. On inclura ensuite ce fichier dans functions.php à l’aide d’un require_once().

La première chose à faire est d’aller copier le contenu du fichier original class-wp-widget-meta.php du répertoire /wp-includes/widgets dans notre fichier widget-meta.php.

Pour remplacer l’ancien widget par le nouveau que l’on définit, on désenregistre l’ancien widget portant le nom de la classe WP_Widget_Meta par notre nouvelle classe.

Il ne reste plus alors qu’à modifier les liens. Cela se passe à la ligne 29. Je ne garde que les liens pour s’enregistrer et se déconnecter. On peut aussi ajouter d’autres liens ou même faire ce que l’on veut. Et également, changer le nom du widget (ligne 14), et le titre du widget (ligne 22). De plus, on dispose de toute la structure pour créer un widget personnel.

On peut vouloir aussi changer le texte Site Admin qui apparaît lorsque l’on est connecté, généré par la fonction wp_register(). Je choisis de le remplacer par Dashboard. Les titres sont en anglais et traduits par les fonctions gettext qui internationalisent les scripts PHP de wordPress.

Widget Meta, changement du texte Site Admin
Widget Meta, changement du texte Site Admin

On ajoute à la fin du fichier:

Il ne reste plus qu’à inclure le fichier widgets/widget-meta.php dans functions.php:

La constante CHILD_THEME est définie au début de functions.php:

Et hop, un widget Meta un petit peu plus à son goût. Pour changer le comportement natif d’autres widgets de wordPress, on s’y prend de la même façon.

1 commentaire

Soumettre un commentaire

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