Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
08/25/2021 08:13:04 AM (4 years ago)
Author:
imath
Message:

Make sure bp_core_new_nav_default() updates the previous default nav

  • The previous default nav item needs to have its slug added to its link property.
  • The default subnav slug needs to be added to the URL used by the corresponding wp_admin_nav item.
  • The new default nav item needs to have its slug removed from its link property.

Fixes #8471

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-core/bp-core-buddybar.php

    r12893 r13093  
    326326    $parent_nav = reset( $parent_nav );
    327327
    328     if ( ! empty( $parent_nav->screen_function ) ) {
    329         // Remove our screen hook if screen function is callable.
    330         if ( is_callable( $parent_nav->screen_function ) ) {
    331             remove_action( 'bp_screens', $parent_nav->screen_function, 3 );
    332         }
    333     }
    334 
    335328    // Edit the screen function for the parent nav.
    336     $bp->members->nav->edit_nav( array(
    337         'screen_function'     => &$r['screen_function'],
    338         'default_subnav_slug' => $r['subnav_slug'],
    339     ), $parent_nav->slug );
     329    $bp->members->nav->edit_nav(
     330        array(
     331            'screen_function'     => &$r['screen_function'],
     332            'default_subnav_slug' => $r['subnav_slug'],
     333        ),
     334        $parent_nav->slug
     335    );
     336
     337    /**
     338     * Update secondary nav items:
     339     * - The previous default nav item needs to have its slug added to its link property.
     340     * - The new default nav item needs to have its slug removed from its link property.
     341     */
     342    $previous_default_subnav = $bp->members->nav->get( $parent_nav->slug . '/' . $parent_nav->default_subnav_slug );
     343
     344    // Edit the link of the previous default nav item.
     345    $bp->members->nav->edit_nav(
     346        array(
     347            'link' => trailingslashit( $previous_default_subnav->link . $previous_default_subnav->slug ),
     348        ),
     349        $previous_default_subnav->slug,
     350        $parent_nav->slug
     351    );
     352
     353    $new_default_subnav = $bp->members->nav->get( $parent_nav->slug . '/' . $r['subnav_slug'] );
     354
     355    // Edit the link of the new default nav item.
     356    $bp->members->nav->edit_nav(
     357        array(
     358            'link' => rtrim( untrailingslashit( $new_default_subnav->link ), $new_default_subnav->slug ),
     359        ),
     360        $new_default_subnav->slug,
     361        $parent_nav->slug
     362    );
    340363
    341364    if ( bp_is_current_component( $parent_nav->slug ) ) {
Note: See TracChangeset for help on using the changeset viewer.