Function Reference: geodir_buddypress_setup_nav
Summary
Setup navigation.
Package
GeoDirectory_BuddyPress_Integration
Change Log
Since: 1.0.0
Filters
‘geodir_buddypress_nav_.$parent_slug’ [Line: 574]
‘geodir_buddypress_subnav_.$parent_slug’ [Line: 577]
‘gdbuddypress_favourites_text’ [Line: 603]
‘gdbuddypress_favourites_text’ [Line: 641]
‘geodir_buddypress_nav_.$parent_slug’ [Line: 646]
‘geodir_buddypress_subnav_.$parent_slug’ [Line: 649]
‘geodir_buddypress_nav_.$parent_slug’ [Line: 714]
‘geodir_buddypress_subnav_.$parent_slug’ [Line: 717]
Source File
geodir_buddypress_setup_nav() is located in geodir_buddypress/includes/gdbuddypress_functions.php [Line: 509]
Source Code
function geodir_buddypress_setup_nav() { $gd_post_types = geodir_get_posttypes( 'array' ); if ( empty( $gd_post_types ) ) { return; } global $bp; $user_domain = geodir_buddypress_get_user_domain(); // listings $listing_post_types = get_option( 'geodir_buddypress_tab_listing' ); $position = 70; if ( !empty( $listing_post_types ) ) { $parent_slug = 'listings'; $parent_url = trailingslashit( $user_domain . $parent_slug ); $parent_nav = array(); $sub_nav = array(); $count = 0; $total_count = 0; foreach ( $listing_post_types as $post_type ) { if ( array_key_exists( $post_type, $gd_post_types ) ) { $tab_slug = $gd_post_types[$post_type]['has_archive']; if ( $count == 0 ) { // parent nav $parent_nav = array( 'name' => __( 'Listings', GDBUDDYPRESS_TEXTDOMAIN ), 'slug' => $parent_slug, 'parent_slug' => $bp->profile->slug, 'screen_function' => 'geodir_buddypress_screen_' . $parent_slug, 'default_subnav_slug' => $tab_slug, 'position' => $position, 'item_css_id' => 'gdbuddypress-nav-' . $parent_slug ); } // get listing count $listing_count = geodir_buddypress_count_total( $post_type ); $class = ( 0 === $listing_count ) ? 'no-count' : 'count'; $total_count += $listing_count; // sub nav $sub_nav[] = array( 'name' => wp_sprintf( __( '%s %s', GDBUDDYPRESS_TEXTDOMAIN ), __( $gd_post_types[$post_type]['labels']['name'], GDBUDDYPRESS_TEXTDOMAIN ), esc_attr( $class ), number_format_i18n( $listing_count ) ), 'slug' => $tab_slug, 'parent_url' => $parent_url, 'parent_slug' => $parent_slug, 'screen_function' => 'geodir_buddypress_screen_' . $parent_slug, 'position' => $position, 'item_css_id' => 'gdbuddypress-nav-' . $parent_slug . '-' . $tab_slug ); $count++; } } if ( !empty( $parent_nav ) ) { $class = ( 0 === $total_count ) ? 'no-count' : 'count'; $parent_nav['name'] = wp_sprintf( __( 'Listings %s', GDBUDDYPRESS_TEXTDOMAIN ), esc_attr( $class ), number_format_i18n( $total_count ) ); } if ( !empty( $parent_nav ) && !empty( $sub_nav ) ) { $parent_nav = apply_filters( 'geodir_buddypress_nav_' . $parent_slug, $parent_nav ); bp_core_new_nav_item( $parent_nav ); $sub_nav = apply_filters( 'geodir_buddypress_subnav_' . $parent_slug, $sub_nav ); // Sub nav items are not required if ( !empty( $sub_nav ) ) { foreach( $sub_nav as $nav ) { bp_core_new_subnav_item( $nav ); } } } } // favorites $listing_post_types = get_option( 'geodir_buddypress_tab_listing' ); if ( !empty( $listing_post_types ) ) { $parent_slug = 'favorites'; $parent_url = trailingslashit( $user_domain . $parent_slug ); $parent_nav = array(); $sub_nav = array(); $count = 0; $total_count = 0; foreach ( $listing_post_types as $post_type ) { if ( array_key_exists( $post_type, $gd_post_types ) ) { $tab_slug = $gd_post_types[$post_type]['has_archive']; if ( $count == 0 ) { $fav_name = __( 'Favorites', GDBUDDYPRESS_TEXTDOMAIN ); $favourite_text = apply_filters('gdbuddypress_favourites_text', $fav_name); // parent nav $parent_nav = array( 'name' => $favourite_text, 'slug' => $parent_slug, 'parent_slug' => $bp->profile->slug, 'screen_function' => 'geodir_buddypress_screen_' . $parent_slug, 'default_subnav_slug' => $tab_slug, 'position' => $position, 'item_css_id' => 'gdbuddypress-nav-' . $parent_slug ); } $position = $position + 5; // get listing count $listing_count = geodir_buddypress_count_favorite( $post_type ); $class = ( 0 === $listing_count ) ? 'no-count' : 'count'; $total_count += $listing_count; // sub nav $sub_nav[] = array( 'name' => wp_sprintf( __( '%s %s', GDBUDDYPRESS_TEXTDOMAIN ), __( $gd_post_types[$post_type]['labels']['name'], GDBUDDYPRESS_TEXTDOMAIN ), esc_attr( $class ), number_format_i18n( $listing_count ) ), 'slug' => $tab_slug, 'parent_url' => $parent_url, 'parent_slug' => $parent_slug, 'screen_function' => 'geodir_buddypress_screen_' . $parent_slug, 'position' => $position, 'item_css_id' => 'gdbuddypress-nav-' . $parent_slug . '-' . $tab_slug ); $count++; } } if ( !empty( $parent_nav ) ) { $class = ( 0 === $total_count ) ? 'no-count' : 'count'; $fav_name = __( 'Favorites', GDBUDDYPRESS_TEXTDOMAIN ); $favourite_text = apply_filters('gdbuddypress_favourites_text', $fav_name); $parent_nav['name'] = wp_sprintf( __( '%s %s', GDBUDDYPRESS_TEXTDOMAIN ), $favourite_text, esc_attr( $class ), number_format_i18n( $total_count ) ); } if ( !empty( $parent_nav ) && !empty( $sub_nav ) ) { $parent_nav = apply_filters( 'geodir_buddypress_nav_' . $parent_slug, $parent_nav ); bp_core_new_nav_item( $parent_nav ); $sub_nav = apply_filters( 'geodir_buddypress_subnav_' . $parent_slug, $sub_nav ); // Sub nav items are not required if ( !empty( $sub_nav ) ) { foreach( $sub_nav as $nav ) { bp_core_new_subnav_item( $nav ); } } } } // reviews $review_post_types = get_option( 'geodir_buddypress_tab_review' ); if ( !empty( $review_post_types ) ) { $parent_slug = 'reviews'; $parent_url = trailingslashit( $user_domain . $parent_slug ); $parent_nav = array(); $sub_nav = array(); $count = 0; $total_count = 0; foreach ( $review_post_types as $post_type ) { if ( array_key_exists( $post_type, $gd_post_types ) ) { $tab_slug = $gd_post_types[$post_type]['has_archive']; if ( $count == 0 ) { // parent nav $parent_nav = array( 'name' => __( 'Reviews', GDBUDDYPRESS_TEXTDOMAIN ), 'slug' => $parent_slug, 'parent_slug' => $bp->profile->slug, 'screen_function' => 'geodir_buddypress_screen_' . $parent_slug, 'default_subnav_slug' => $tab_slug, 'position' => $position, 'item_css_id' => 'gdbuddypress-nav-' . $parent_slug ); } $position = $position + 5; // get review count $review_count = geodir_buddypress_count_reviews( $post_type ); $class = ( 0 === $review_count ) ? 'no-count' : 'count'; $total_count += $review_count; // sub nav $sub_nav[] = array( 'name' => wp_sprintf( __( '%s %s', GDBUDDYPRESS_TEXTDOMAIN ), __( $gd_post_types[$post_type]['labels']['name'], GDBUDDYPRESS_TEXTDOMAIN ), esc_attr( $class ), number_format_i18n( $review_count ) ), 'slug' => $tab_slug, 'parent_url' => $parent_url, 'parent_slug' => $parent_slug, 'screen_function' => 'geodir_buddypress_screen_' . $parent_slug, 'position' => $position, 'item_css_id' => 'gdbuddypress-nav-' . $parent_slug . '-' . $tab_slug ); $count++; } } if ( !empty( $parent_nav ) ) { $class = ( 0 === $total_count ) ? 'no-count' : 'count'; $parent_nav['name'] = wp_sprintf( __( 'Reviews %s', GDBUDDYPRESS_TEXTDOMAIN ), esc_attr( $class ), number_format_i18n( $total_count ) ); } if ( !empty( $parent_nav ) && !empty( $sub_nav ) ) { $parent_nav = apply_filters( 'geodir_buddypress_nav_' . $parent_slug, $parent_nav ); bp_core_new_nav_item( $parent_nav ); $sub_nav = apply_filters( 'geodir_buddypress_subnav_' . $parent_slug, $sub_nav ); // Sub nav items are not required if ( !empty( $sub_nav ) ) { foreach( $sub_nav as $nav ) { bp_core_new_subnav_item( $nav ); } } } } }