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.

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
profiledans le slug parentsettingsque 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 :
Et voici un aperçu de ce que cela donne :
L’appel de bp_core_remove_subnav_item est alors simple :
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 :












