Les éléments de navigation BuddyPress

Les éléments de navigation de BuddyPress ne peuvent pas être supprimés de manière sélective en utilisant le tableau de bord WordPress, sauf à désactiver le module concerné. Cet article montre comment le faire simplement de manière programmatique.

Dans cet exemple, je souhaite supprimer l’élément Visibilité du profil dans la section Réglages.

Sukellos WordPress Supprimer Navigation BuddyPress

Il existe plusieurs manières de le faire dans BuddyPress, comme bien souvent. Les deux approches que je vous montre par la suite utilise l’API BuddyPress.

La méthode bp_core_remove_subnav_item

La fonction bp_core_remove_subnav_item est une des méthodes à utiliser. Elle prend 2 paramètres :

  • $parent_slug : Slug de la navigation parente
  • $slug : Slug de la navigation

Elle doit être appelée à un moment de l’exécution où le menu est construit et prêt à être affiché. Le hook bp_actions est appelé juste avant l’affichage du menu. Sa construction est finalisée à cet endroit. C’est donc l’endroit idéal pour interagir avec le menu et y placer le code.

La question suivante se pose :

  • Comment connaître les slugs du menu parent et du sous-menu ?
  • Plus précisément, comment savoir que c’est le slug profile dans le slug parent settings que je dois supprimer ?

Il existe pour cela une méthode pour obtenir un aperçu de l’arborescence complète du menu en cours d’affichage : get_item_nav(). Et cela tombe bien, le hook bp_actions est le bon endroit également pour le faire :

Copier

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

Copier

L’appel de bp_core_remove_subnav_item est alors simple :

Copier

La méthode delete_nav

Une autre méthode pour supprimer un élément de navigation BuddyPress est delete_nav. Elle prend 2 paramètres, les mêmes que la précédente, mais inversés :

  • $slug : Slug de la navigation
  • $parent_slug : Slug de la navigation parente

Elle doit également être appelée à un moment de l’exécution où le menu est construit et prêt à être affiché, donc toujours dans le hook bp_actions.

La différence est qu’elle est définie dans la classe BP_Core_Nav, de même que pour get_item_nav utilisée précédemment. Mais au final, son appel n’est guère plus compliquée :

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