BP_Admin::admin_menus()
Register site- or network-admin nav menu elements.
Description
Contextually hooked to site or network-admin depending on current configuration.
Source
File: bp-core/classes/class-bp-admin.php
public function admin_menus() { global $menu; // Bail if user cannot moderate. if ( ! bp_current_user_can( 'manage_options' ) ) { return; } // Add BuddyBoss Menu separator above the BuddyBoss and below the BuddyBoss if ( bp_current_user_can( 'manage_options' ) ) { $menu[] = array( '', 'read', 'separator-buddyboss', '', 'wp-menu-separator buddyboss' ); // WPCS: override ok. $menu[] = array( '', 'read', 'separator-plugins', '', 'wp-menu-separator plugins' ); // WPCS: override ok. } $hooks = array(); // Changed in BP 1.6 . See bp_core_admin_backpat_menu(). $hooks[] = add_menu_page( __( 'BuddyBoss', 'buddyboss' ), __( 'BuddyBoss', 'buddyboss' ), $this->capability, $this->settings_page, 'bp_core_admin_backpat_menu', buddypress()->plugin_url . 'bp-core/images/admin/icons/logos/buddyboss.svg', 62 ); $hooks[] = add_submenu_page( 'bp-general-settings', __( 'BuddyBoss Help', 'buddyboss' ), __( 'Help', 'buddyboss' ), $this->capability, 'bp-general-settings', 'bp_core_admin_backpat_page' ); // Add the Separator. // $hooks[] = add_submenu_page( // $this->settings_page, // __( '', 'buddyboss' ), // __( '', 'buddyboss' ), // $this->capability, // 'bp-plugin-separator-notice', // '' // ); // Add the option pages. $hooks[] = add_submenu_page( $this->settings_page, __( 'BuddyBoss Components', 'buddyboss' ), __( 'Components', 'buddyboss' ), $this->capability, 'bp-components', 'bp_core_admin_components_settings' ); $hooks[] = add_submenu_page( $this->settings_page, __( 'Pages', 'buddyboss' ), __( 'Pages', 'buddyboss' ), $this->capability, 'bp-pages', 'bp_core_admin_pages_settings' ); $hooks[] = add_submenu_page( $this->settings_page, __( 'BuddyBoss Settings', 'buddyboss' ), __( 'Settings', 'buddyboss' ), $this->capability, 'bp-settings', 'bp_core_admin_settings' ); $hooks[] = add_submenu_page( $this->settings_page, __( 'Plugin Integrations', 'buddyboss' ), __( 'Integrations', 'buddyboss' ), $this->capability, 'bp-integrations', 'bp_core_admin_integrations' ); // Credits. $hooks[] = add_submenu_page( $this->settings_page, __( 'Credits', 'buddyboss' ), __( 'Credits', 'buddyboss' ), $this->capability, 'bp-credits', array( $this, 'bp_credits_screen' ) ); // For consistency with non-Multisite, we add a Tools menu in // the Network Admin as a home for our Tools panel. if ( is_multisite() && bp_core_do_network_admin() ) { $tools_parent = 'network-tools'; $hooks[] = add_menu_page( __( 'Tools', 'buddyboss' ), __( 'Tools', 'buddyboss' ), $this->capability, $tools_parent, 'bp_core_tools_top_level_item', '', 24 // Just above Settings. ); $hooks[] = add_submenu_page( $tools_parent, __( 'Available Tools', 'buddyboss' ), __( 'Available Tools', 'buddyboss' ), $this->capability, 'available-tools', 'bp_core_admin_available_tools_page' ); } else { $tools_parent = 'tools.php'; } $hooks[] = add_submenu_page( $this->settings_page, __( 'Tools', 'buddyboss' ), __( 'Tools', 'buddyboss' ), $this->capability, 'bp-tools', 'bp_core_admin_tools' ); $hooks[] = add_submenu_page( $this->settings_page, __( 'Help', 'buddyboss' ), __( 'Help', 'buddyboss' ), $this->capability, 'bp-help', 'bp_core_admin_help' ); $hooks[] = add_submenu_page( $this->settings_page, __( '', 'buddyboss' ), __( '', 'buddyboss' ), $this->capability, 'bp-plugin-separator-notice', '' ); // For network-wide configs, add a link to (the root site's) Emails screen. if ( is_network_admin() && bp_is_network_activated() ) { $email_labels = bp_get_email_post_type_labels(); $email_url = get_admin_url( bp_get_root_blog_id(), 'edit.php?post_type=' . bp_get_email_post_type() ); $hooks[] = add_menu_page( $email_labels['name'], $email_labels['menu_name'], $this->capability, '', '', 'dashicons-email-alt', 26 ); // Hack: change the link to point to the root site's admin, not the network admin. //$GLOBALS['menu'][26][2] = esc_url_raw( $email_url ); } // foreach( $hooks as $hook ) { // add_action( "admin_head-$hook", 'bp_core_modify_admin_menu_highlight' ); // } }
Changelog
Version | Description |
---|---|
BuddyPress 1.6.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.