Changeset 10029 for trunk/src/bp-core/bp-core-filters.php
- Timestamp:
- 07/30/2015 07:17:13 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bp-core/bp-core-filters.php
r10012 r10029 860 860 } 861 861 862 // Prevent a notice error when using the customizer 863 $menu_classes = $menu_item->classes; 864 865 if ( is_array( $menu_classes ) ) { 866 $menu_classes = implode( ' ', $menu_item->classes); 867 } 868 862 869 // We use information stored in the CSS class to determine what kind of 863 870 // menu item this is, and how it should be treated 864 preg_match( '/\sbp-(.*)-nav/', implode( ' ', $menu_item->classes), $matches );871 preg_match( '/\sbp-(.*)-nav/', $menu_classes, $matches ); 865 872 866 873 // If this isn't a BP menu item, we can stop here … … 916 923 $current = bp_get_requested_url(); 917 924 if ( strpos( $current, $menu_item->url ) !== false ) { 918 $menu_item->classes[] = 'current_page_item'; 925 if ( is_array( $menu_item->classes ) ) { 926 $menu_item->classes[] = 'current_page_item'; 927 $menu_item->classes[] = 'current-menu-item'; 928 } else { 929 $menu_item->classes = array( 'current_page_item', 'current-menu-item' ); 930 } 919 931 } 920 932 } … … 923 935 } 924 936 add_filter( 'wp_setup_nav_menu_item', 'bp_setup_nav_menu_item', 10, 1 ); 937 938 /** 939 * Populate BuddyPress user nav items for the customizer 940 * 941 * @since BuddyPress (2.3.3) 942 * 943 * @param array $items The array of menu items 944 * @param string $type The requested type 945 * @param string $object The requested object name 946 * @param integer $page The page num being requested 947 * @return array The paginated BuddyPress user nav items. 948 */ 949 function bp_customizer_nav_menus_get_items( $items = array(), $type = '', $object = '', $page = 0 ) { 950 if ( 'bp_loggedin_nav' === $object ) { 951 $bp_items = bp_nav_menu_get_loggedin_pages(); 952 } elseif ( 'bp_loggedout_nav' === $object ) { 953 $bp_items = bp_nav_menu_get_loggedout_pages(); 954 } else { 955 return $items; 956 } 957 958 foreach ( $bp_items as $bp_item ) { 959 $items[] = array( 960 'id' => "bp-{$bp_item->post_excerpt}", 961 'title' => html_entity_decode( $bp_item->post_title, ENT_QUOTES, get_bloginfo( 'charset' ) ), 962 'type' => $type, 963 'url' => esc_url_raw( $bp_item->guid ), 964 'classes' => "bp-menu bp-{$bp_item->post_excerpt}-nav", 965 'type_label' => _x( 'Custom Link', 'customizer menu type label', 'buddypress' ), 966 'object' => $object, 967 'object_id' => -1, 968 ); 969 } 970 971 return array_slice( $items, 10 * $page, 10 ); 972 } 973 add_filter( 'customize_nav_menu_available_items', 'bp_customizer_nav_menus_get_items', 10, 4 ); 974 975 /** 976 * Set BuddyPress item navs for the customizer 977 * 978 * @since BuddyPress (2.3.3) 979 * 980 * @param array $item_types an associative array structured for the customizer 981 */ 982 function bp_customizer_nav_menus_set_item_types( $item_types = array() ) { 983 $item_types = array_merge( $item_types, array( 984 'bp_loggedin_nav' => array( 985 'title' => _x( 'BuddyPress (logged-in)', 'customizer menu section title', 'buddypress' ), 986 'type' => 'bp_nav', 987 'object' => 'bp_loggedin_nav', 988 ), 989 'bp_loggedout_nav' => array( 990 'title' => _x( 'BuddyPress (logged-out)', 'customizer menu section title', 'buddypress' ), 991 'type' => 'bp_nav', 992 'object' => 'bp_loggedout_nav', 993 ), 994 ) ); 995 996 return $item_types; 997 } 998 add_filter( 'customize_nav_menu_available_item_types', 'bp_customizer_nav_menus_set_item_types', 10, 1 ); 925 999 926 1000 /**
Note: See TracChangeset
for help on using the changeset viewer.