Les liens de navigation BuddyPress

Les liens des éléments de navigation de BuddyPress ne peuvent pas être modifiés en utilisant le tableau de bord WordPress. J’explique dans cet article comment y parvenir de manière programmatique.

Par exemple, je souhaite que l’élément Modifier dans la section Profilpointe directement dans le tableau de bord WordPress. Cela peut paraître étrange comme idée, mais c’est seulement pour illustrer cet article.

Sukellos WordPress Modifier Lien BuddyPress

J’expose deux méthodes dans cet article :

  • Profiter d’un hook BuddyPress
  • Utiliser l’API BuddyPress

Utiliser un hook BuddyPress

Le moyen le plus direct est d’utiliser le filtre bp_nouveau_get_nav_link qui prend trois paramètres :

  • $link : Le lien 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 Modifier :

Copier

Le code :

Copier

La valeur retournée est modifiée lorsque le filtre est appelé pour le sous-menu de slug edit

Il en découle la question suivante :

  • Comment connaître les slugs du sous-menu ?
  • Plus précisément, comment savoir que c’est le slug edit que je dois surveiller ?

La réponse n’est pas simple et j’ai déjà abordé le sujet dans d’autres articles sur BuddyPress. Il existe une méthode pour obtenir un aperçu de l’arborescence complète du menu en cours d’affichage : get_item_nav() .

  • Seulement voilà : elle est présente dans la classe BP_Core_Nav . Il faut donc nécessairement récupérer l’instance de cette classe lors de l’exécution.
  • Et elle doit être appelée une fois complète la construction du menu de navigation… ce qui 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 se récupérer ainsi : buddypress()->members->nav;

Voilà une bonne transition avec la deuxième façon de modifier le titre du sous-menu. En effet, dans l’appel de 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é juste avant l’affichage du menu. C’est donc l’endroit parfait pour modifier ce menu.

La fonction edit_nav est la méthode à utiliser. 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

Besoin d’une assistance technique par un expert WordPress ?
Optez pour un crédit temps de quelques heures

Laisser un commentaire