web-dev-qa-db-fra.com

Supprimer les onglets des pages de groupes et de membres buddypress

En gros, si vous voyez l'image ci-dessous, la page de mes groupes contient 5 éléments d'onglets:

Screenshot

Maintenant, je veux pouvoir en supprimer certains. Je veux pouvoir supprimer "Membres" et "Envoyer des invitations" (par exemple).

Ceci est sur la page des groupes frontend. Lorsque vous sélectionnez un groupe et allez le voir.

Je ne veux pas vraiment éditer les fichiers core, existe-t-il un autre moyen de le faire? Peut-être un remove_action?

Je vous remercie.

2
Thomas Clayson

Géré pour explorer le code principal et trouver cette fonction:

bp_core_remove_subnav_item

Donc, vous pouvez faire quelque chose comme ça:

function remove_group_options() {
    global $bp;

    bp_core_remove_subnav_item($bp->groups->slug, 'members');
    bp_core_remove_subnav_item($bp->groups->slug, 'send-invites');

}
add_action( 'bp_setup_nav', 'remove_group_options' );
3
Thomas Clayson

Cela fonctionne pour moi dans BP 2.0.1:

Les fonctions de suppression des éléments de navigation et de sous-navigation sont similaires, à ceci près que la fonction de sous-navigation nécessite un argument supplémentaire pour spécifier le paramètre de navigation principal, dont il s’agit.

Ainsi, le code suivant supprime l'élément de navigation principal "forums" et supprime également l'élément de sous-navigation "change-avatar" de l'élément de navigation principal "Profil":

function remove_nav_items() {
    bp_core_remove_nav_item( 'forums' );
    bp_core_remove_subnav_item( 'profile', 'change-avatar' );
}
add_action( 'bp_setup_nav', 'remove_nav_items');

J'ai testé cela dans le thème bp-default de BP 2.0.1 et également sur mon propre site.

J'espère que ça aide :-)

0
lflier

La réponse ci-dessus ne fonctionne pas dans la version 1.5

$bp->groups->slug

doit devenir

bp_get_current_group_slug()

Pour prendre en charge les deux versions de bp, utilisez:

function remove_group_options()
{
    global $bp;
    $parent_slug = isset( $bp->bp_options_nav[$bp->groups->current_group->slug] ) ? $bp->groups->current_group->slug : $bp->groups->slug;
    bp_core_remove_nav_item( $parent_slug, 'members' );
    bp_core_remove_nav_item( $parent_slug, 'send-invites' );
}
add_action( 'bp_setup_nav', 'remove_group_options' );
0
artfulhacker