web-dev-qa-db-ja.com

Buddypressグループとメンバーページからタブを削除します

基本的に下の写真を見れば私のグループページに5つのタブ項目があります:

Screenshot

今、私はそれらのいくつかを削除できるようにしたいです。 「Members」と「Send Invites」を削除したい(例えば)。

これはフロントエンドグループのページにあります。グループを選択して表示するとき.

本当にコアファイルを編集したくないのですが、他に方法はありますか?多分remove_actionですか?

ありがとうございました。

2
Thomas Clayson

コアコードをクロールして、この機能を見つけました。

bp_core_remove_subnav_item

だから、あなたはこのようなことをすることができます:

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

これはBP 2.0.1で私のために働いています:

Nav項目とsubnav項目を削除するための関数は似ていますが、subnav関数はメインnavを指定するための追加の引数を必要とします。

したがって、次のコードでは、メインナビゲーションアイテム「forums」が削除され、メインナビゲーションアイテム「Profile」から「change-avatar」サブナブアイテムも削除されます。

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');

私はこれをBP 2.0.1のbp-defaultテーマと私自身のサイトでテストしました。

それが役に立てば幸い :-)

0
lflier

上記の答えは1.5では動作しません

$bp->groups->slug

になる必要があります

bp_get_current_group_slug()

両方のバージョンのbpをサポートするには、次のようにします。

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