| | 939 | * Populate BuddyPress user nav items for the customizer |
| | 940 | * |
| | 941 | * @since BuddyPress (2.4.0) |
| | 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' => __( 'Custom Link', '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.4.0) |
| | 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' => __( 'BuddyPress (logged-in)', 'buddypress' ), |
| | 986 | 'type' => 'bp_nav', |
| | 987 | 'object' => 'bp_loggedin_nav', |
| | 988 | ), |
| | 989 | 'bp_loggedout_nav' => array( |
| | 990 | 'title' => __( 'BuddyPress (logged-out)', '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 ); |
| | 999 | |
| | 1000 | /** |