Les titres de navigation BuddyPress
Les titres de navigation de l’espace BuddyPress ne peuvent pas être modifiés simplement en utilisant le tableau de bord WordPress. Cet article montre donc comment y parvenir de manière programmatique.
Par exemple, dans la section Activités
, je veux modifier le sous-titre Mes citations
en Mentions
.
Avant :

Après :

Je vous montre dans cet article deux façons d’y parvenir :
- Utiliser un hook BuddyPress
- Interagir avec l’API BuddyPress
Utiliser un hook BuddyPress
Le moyen le plus direct est d’utiliser le filtre bp_nouveau_get_nav_link_text
qui prend trois paramètres :
$link_text
: Le texte HTML de l’élément de menu$nav_item
: L’élément de menu courant$displayed_nav
: La navigation courante/li>
Le contenu de ces paramètres pour le sous-menu Mes citations
:
Le code :
Il faut modifier la valeur retournée lorsque ce filtre est appelé pour le sous-menu dont le slug est mentions
De fait la question suivante se pose :
- Comment connaître les slugs du sous-menu ?
- De manière plus précise, comment savoir que c’est le slug
mentions
que je dois surveiller ?
La réponse n’est pas très simple et j’en parle dans d’autres articles sur BuddyPress. Il existe une fonction qui donne un aperçu de l’arborescence complète du menu en cours d’affichage : get_item_nav()
.
- Première difficulté : elle est définie dans la classe
BP_Core_Nav
. Il est donc nécessaire de récupérer l’instance de cette classe lors de l’exécution. - Ensuite, elle doit être appelée une fois que la construction du menu de navigation est complète… ce qui malheureusement n’est pas le cas lors de l’appel du filtre
bp_nouveau_get_nav_link_text
.
La solution est de l’appeler juste avant l’affichage du menu, lors de l’appel de l’action bp_actions
:
Et voici un aperçu de ce que cela donne :
L’instance de BP_Core_Nav
peut être accédée de cette manière : buddypress()->members->nav;
Cela constitue une transition parfaite pour introduire la deuxième façon de modifier le titre du sous-menu. Effectivement, quitte à utiliser cette action bp_actions
, on peut en profiter pour interagir directement avec les fonctions du coeur de BuddyPress.
Interagir avec l’API BuddyPress
Le hook bp_actions
est appelé immédiatement avant l’affichage du menu. C’est donc l’endroit idéal pour modifier ce dernier.
La fonction edit_nav
peut être utilisée. Elle prend 3 paramètres :
$args
: Les paramètres à modifier dans la navigation.$slug
: Slug de la navigation$parent_slug
: Slug de la navigation parente
Le code intégral
Le code intégral comprenant les deux approches :