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 :

Sukellos WordPress Modifier Titre BuddyPress

Après :

Sukellos WordPress Modifier Titre BuddyPress

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 :

Copier

Le code :

Copier

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 :

Copier

Et voici un aperçu de ce que cela donne :

Copier

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
Copier

Le code intégral

Le code intégral comprenant les deux approches :

Copier

Quelques liens pour approfondir

Laisser un commentaire