Make WordPress Core

Changeset 15191


Ignore:
Timestamp:
06/10/2010 05:37:15 PM (15 years ago)
Author:
nacin
Message:

Don't show an error when the theme supports widgets but not menus. see #13825.

Location:
trunk/wp-admin
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/includes/nav-menu.php

    r15116 r15191  
    366366function wp_nav_menu_setup() {
    367367    // Register meta boxes
    368     if ( get_registered_nav_menus() && wp_get_nav_menus() )
     368    if ( ( current_theme_supports( 'widgets' ) || get_registered_nav_menus() ) && wp_get_nav_menus() )
    369369        add_meta_box( 'nav-menu-theme-locations', __( 'Theme Locations' ), 'wp_nav_menu_locations_meta_box' , 'nav-menus', 'side', 'default' );
    370370    add_meta_box( 'add-custom-links', __('Custom Links'), 'wp_nav_menu_item_link_meta_box', 'nav-menus', 'side', 'default' );
     
    462462    global $nav_menu_selected_id;
    463463    $locations = get_registered_nav_menus();
     464
     465    if ( empty( $locations ) ) {
     466        // We must only support widgets. Leave a message and bail.
     467        echo '<p class="howto">' . __('The current theme does not natively support menus, but you can use the &#8220;Custom Menu&#8221; widget to add any menus you create here to the theme&#8217;s sidebar.') . '</p>';
     468        return;
     469    }
     470
    464471    $menus = wp_get_nav_menus();
    465472    $menu_locations = get_nav_menu_locations();
  • trunk/wp-admin/nav-menus.php

    r15189 r15191  
    249249                // Remove this menu from any locations.
    250250                $locations = get_theme_mod( 'nav_menu_locations' );
    251                 foreach ( $locations as $location => $menu_id ) {
     251                foreach ( (array) $locations as $location => $menu_id ) {
    252252                    if ( $menu_id == $nav_menu_selected_id )
    253253                        $locations[ $location ] = 0;
     
    431431}
    432432
    433 // The theme supports menus
    434 if ( current_theme_supports('nav-menus') ) {
    435     // Set up nav menu
    436     wp_nav_menu_setup();
    437 
    438 // The theme does not support menus but supports widgets
    439 } elseif ( current_theme_supports('widgets') ) {
    440     // Set up nav menu
    441     wp_nav_menu_setup();
    442     $messages[] = '<div id="message" class="error"><p>' . __('The current theme does not natively support menus, but you can use the &#8220;Custom Menu&#8221; widget to add any menus you create here to the theme&#8217;s sidebar.') . '</p></div>';
    443 }
    444 
     433wp_nav_menu_setup();
    445434wp_initial_nav_menu_meta_boxes();
     435
     436if ( ! get_registered_nav_menus() && ! wp_get_nav_menus() )
     437    echo '<div id="message" class="updated"><p>' . __('The current theme does not natively support menus, but you can use the &#8220;Custom Menu&#8221; widget to add any menus you create here to the theme&#8217;s sidebar.') . '</p></div>';
    446438
    447439$help =  '<p>' . __('This feature is new in version 3.0; to use a custom menu in place of your theme&#8217;s default menus, support for this feature must be registered in the theme&#8217;s functions.php file. If your theme does not support the custom menus feature yet (the new default theme, Twenty Ten, does), you can learn about adding support yourself by following the below link.') . '</p>';
Note: See TracChangeset for help on using the changeset viewer.