bp_get_nav_menu_items( string $component = 'members' )
Get the items registered in the primary and secondary BuddyPress navigation menus.
Description
Parameters
- $component
-
(Optional) Component whose nav items are being fetched.
Default value: 'members'
Return
(array) A multidimensional array of all navigation items.
Source
File: bp-core/bp-core-template.php
3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 | function bp_get_nav_menu_items( $component = 'members' ) { $bp = buddypress(); $menus = array (); if ( ! isset( $bp ->{ $component }->nav ) ) { return $menus ; } // Get the item nav and build the menus. foreach ( $bp ->{ $component }->nav->get_item_nav() as $nav_menu ) { // Get the correct menu link. See https://buddypress.trac.wordpress.org/ticket/4624. $link = bp_loggedin_user_domain() ? str_replace ( bp_loggedin_user_domain(), bp_displayed_user_domain(), $nav_menu ->link ) : trailingslashit( bp_displayed_user_domain() . $nav_menu ->link ); // Add this menu. $menu = new stdClass; $menu -> class = array ( 'menu-parent' ); $menu ->css_id = $nav_menu ->css_id; $menu ->link = $link ; $menu ->name = $nav_menu ->name; $menu ->parent = 0; if ( ! empty ( $nav_menu ->children ) ) { $submenus = array (); foreach ( $nav_menu ->children as $sub_menu ) { $submenu = new stdClass; $submenu -> class = array ( 'menu-child' ); $submenu ->css_id = $sub_menu ->css_id; $submenu ->link = $sub_menu ->link; $submenu ->name = $sub_menu ->name; $submenu ->parent = $nav_menu ->slug; // If we're viewing this item's screen, record that we need to mark its parent menu to be selected. if ( bp_is_current_action( $sub_menu ->slug ) && bp_is_current_component( $nav_menu ->slug ) ) { $menu -> class [] = 'current-menu-parent' ; $submenu -> class [] = 'current-menu-item' ; } $submenus [] = $submenu ; } } $menus [] = $menu ; if ( ! empty ( $submenus ) ) { $menus = array_merge ( $menus , $submenus ); } } /** * Filters the items registered in the primary and secondary BuddyPress navigation menus. * * @since BuddyPress 1.7.0 * * @param array $menus Array of items registered in the primary and secondary BuddyPress navigation. */ return apply_filters( 'bp_get_nav_menu_items' , $menus ); } |
Changelog
Version | Description |
---|---|
BuddyPress 1.7.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.