Hi, there
Thank you for previous helps. It helps me a lot.I’m wondering that is there any way to move one of BuddyPress sub-Tab from one Tab to another?
For example,
I want to move Activity -> Personal
http://imgur.com/dcVeDLDto Profile ->
http://imgur.com/cE2nE9WThanks a lot.
Hi Dandy,
thank you for posting. It is a little bit complicated.You need to remove the nav item and then re register. Also, in most of the case, you will have to rewrite the screen handler for the page. I will advise avoiding it unless it is absolute necessary for your site.
If you need only a few tabs, I will be happy to provide specific code.
thank you
BrajeshHi, Brajesh
Thanks for your reply and explanation.
I’m afraid that I have to do in this way because most of users like to.
So, what I want to do are only few tabs.
1. Remove “Activity -> Personal” from nav item like below:
http://imgur.com/dcVeDLD2. Add “Personal” to “Profile” tab and put it at the first place, like below:
http://imgur.com/cE2nE9WAdditionally, could you also tell me how to hide specific tab and sub-tab at BuddyPress nav?
Thanks a lot.
Hi Dandy,
Please place the following code in your bp-custom.php file and let me know if It is working or not.
function buddydev_setup_modified_nav() { bp_core_remove_subnav_item( buddypress()->activity->id, 'just-me' ); bp_core_new_nav_default ( array( 'parent_slug' => buddypress()->activity->id, 'subnav_slug' => 'mentions', 'screen_function' => 'bp_activity_screen_mentions' ) ); if ( bp_displayed_user_domain() ) { $user_domain = bp_displayed_user_domain(); } elseif ( bp_loggedin_user_domain() ) { $user_domain = bp_loggedin_user_domain(); } else { return; } $parent_slug = bp_get_profile_slug(); $slug = trailingslashit( $user_domain . $parent_slug ); bp_core_new_subnav_item( array( 'name' => __( 'Personal' ), 'slug' => 'just-me', 'parent_slug' => $parent_slug, 'parent_url' => $slug, 'position' => 0, 'screen_function' => 'buddydev_show_activity' )); } add_action( 'bp_setup_nav', 'buddydev_setup_modified_nav', 20 ); function buddydev_show_activity() { add_action( 'bp_template_content', 'buddydev_render_screen_my_activity' ); bp_core_load_template( 'members/single/plugins' ); } function buddydev_render_screen_my_activity() { ?> <div class="item-list-tabs no-ajax" id="subnav" role="navigation"> <ul> <li id="activity-filter-select" class="last"> <label for="activity-filter-by"><?php _e( 'Show:', 'buddypress' ); ?></label> <select id="activity-filter-by"> <option value="-1"><?php _e( '— Everything —', 'buddypress' ); ?></option> <?php bp_activity_show_filters(); ?> <?php /** * Fires inside the select input for member activity filter options. * * @since 1.2.0 */ do_action( 'bp_member_activity_filter_options' ); ?> </select> </li> </ul> </div><!-- .item-list-tabs --> <?php if( is_user_logged_in() && bp_is_my_profile() ) { bp_get_template_part( 'activity/post-form' ); } echo "<div class='activity'>"; bp_get_template_part( 'activity/activity-loop' ); echo "</div>"; }
For hiding specific tab use buddypress function “bp_core_remove_subnav_item()” as I have used to remove the menu.
Make sure the tab You want to remove should not be default tab of its parent. If it is a default nav than you have to register new default tab of that menu for that you can refer the following linkhttps://buddydev.com/buddypress/changing-default-subnav-buddypress-component/
Thank you
RaviHi, there
I’m sorry to bother you again about this question. I’m wondering that could you spare a little time to solve this issue for me, please?
Thank you very much.
Hi Dandy,
Please replace the old code with the following code and let me know if it works or not.
add_action( 'bp_setup_nav', 'buddydev_setup_modified_nav', 20 ); function buddydev_setup_modified_nav() { $bp = buddypress(); bp_core_remove_subnav_item( buddypress()->activity->id, 'just-me' ); $bp->members->nav->{'activity/mentions'}->position = 40; $bp->members->nav->{'activity/favorites'}->position = 30; if ( bp_is_active('groups') ) { $bp->members->nav->{'activity/groups'}->position = 20; } if ( bp_is_active('friends') ) { $bp->members->nav->{'activity/friends'}->position = 10; } bp_core_new_nav_item( array( 'name' => __('Home','buddypress'), //replace with your name 'slug' => 'home', // slug must be unique 'screen_function' => 'buddydev_show_activity', 'position' => 1, // unique 'default_subnav_slug' => false, 'show_for_displayed_user' => true, //Whether the nav item should be visible when viewing a member profile other than your own ) ); bp_core_new_nav_default ( array( 'parent_slug' => buddypress()->activity->id, 'subnav_slug' => 'friends', 'screen_function' => 'bp_activity_screen_friends' ) ); if ( bp_displayed_user_domain() ) { $user_domain = bp_displayed_user_domain(); } elseif ( bp_loggedin_user_domain() ) { $user_domain = bp_loggedin_user_domain(); } else { return; } $parent_slug = bp_get_profile_slug(); $slug = trailingslashit( $user_domain . $parent_slug ); bp_core_new_subnav_item( array( 'name' => __( 'Personal' ), 'slug' => 'just-me', 'parent_slug' => $parent_slug, 'parent_url' => $slug, 'position' => 0, 'screen_function' => 'buddydev_show_activity' )); } function buddydev_show_activity() { add_action( 'bp_template_content', 'buddydev_render_screen_my_activity' ); bp_core_load_template( 'members/single/plugins' ); } function buddydev_render_screen_my_activity() { ?> <div class="item-list-tabs no-ajax" id="subnav" role="navigation"> <ul> <li id="activity-filter-select" class="last"> <label for="activity-filter-by"><?php _e( 'Show:', 'buddypress' ); ?></label> <select id="activity-filter-by"> <option value="-1"><?php _e( '— Everything —', 'buddypress' ); ?></option> <?php bp_activity_show_filters(); ?> <?php /** * Fires inside the select input for member activity filter options. * * @since 1.2.0 */ do_action( 'bp_member_activity_filter_options' ); ?> </select> </li> </ul> </div><!-- .item-list-tabs --> <?php if( is_user_logged_in() && bp_is_my_profile() ) { bp_get_template_part( 'activity/post-form' ); } echo "<div class='activity'>"; bp_get_template_part( 'activity/activity-loop' ); echo "</div>"; }
Thank You
RaviHi, Ravi
Thank you so much for updating. It works perfectly. I’m really appreciated at that.
There are only two questions left:
1. In “Activity” Tab, it seems like the order of Sub tab is still “Mentions, Favourites, Friends, Groups”. I realize the default one already changed to “Friends”. But could you find a way to put the order as “Friends, Groups, Mentions, Favorites”, also the default one is “Friends”?2. In “Profile” Tab, the default sub tab is still “View”. Could you change it into “Personal”? Thanks.
Thank you very much.
The topic ‘ [Resolved] Move BuddyPress Tab’ is closed to new replies.