WordPress.org

Make WordPress Core

Ticket #13958: 13958.3.patch

File 13958.3.patch, 2.6 KB (added by ocean90, 3 years ago)
  • wp-admin/css/nav-menu.dev.css

     
    8686        border-top: 1px solid; 
    8787} 
    8888 
    89 #post-body div.updated { 
     89#post-body div.updated, #post-body div.error { 
    9090        margin: 0; 
    9191} 
    9292 
  • wp-admin/includes/nav-menu.php

     
    11031103                else 
    11041104                        return new WP_Error( 'menu_walker_not_exist', sprintf( __('The Walker class named <strong>%s</strong> does not exist.'), $walker_class_name ) ); 
    11051105 
    1106                 $some_pending_menu_items = false; 
     1106                $some_pending_menu_items = $some_invalid_menu_items = false; 
    11071107                foreach( (array) $menu_items as $menu_item ) { 
    11081108                        if ( isset( $menu_item->post_status ) && 'draft' == $menu_item->post_status ) 
    11091109                                $some_pending_menu_items = true; 
     1110                        if ( ! empty( $menu_item->_invalid ) ) 
     1111                                $some_invalid_menu_items = true; 
    11101112                } 
    11111113 
    11121114                if ( $some_pending_menu_items ) 
    11131115                        $result .= '<div class="updated inline"><p>' . __('Click Save Menu to make pending menu items public.') . '</p></div>'; 
    11141116 
     1117                if ( $some_invalid_menu_items ) 
     1118                        $result .= '<div class="error inline"><p>' . __('There are some invalid menu items. Please check or delete them.') . '</p></div>';       
     1119 
    11151120                $result .= '<ul class="menu" id="menu-to-edit"> '; 
    11161121                $result .= walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $menu_items), 0, (object) array('walker' => $walker ) ); 
    11171122                $result .= ' </ul> '; 
  • wp-includes/nav-menu.php

     
    528528        } 
    529529 
    530530        $items = array_map( 'wp_setup_nav_menu_item', $items ); 
    531          
    532         if ( ! in_array( $args['post_status'], array( 'draft', 'any' ) ) )  
     531 
     532        if ( ! is_admin() ) // Remove invalid items only in frontend 
    533533                $items = array_filter( $items, '_is_valid_nav_menu_item' ); 
    534534 
    535535        if ( ARRAY_A == $args['output'] ) { 
     
    583583                                        $menu_item->type_label = $object->labels->singular_name; 
    584584                                } else { 
    585585                                        $menu_item->type_label = $menu_item->object; 
    586                                         $menu_item->post_status = 'draft'; 
    587586                                        $menu_item->_invalid = true; 
    588587                                } 
    589588 
     
    599598                                        $menu_item->type_label = $object->labels->singular_name; 
    600599                                } else { 
    601600                                        $menu_item->type_label = $menu_item->object; 
    602                                         $menu_item->post_status = 'draft'; 
    603601                                        $menu_item->_invalid = true; 
    604602                                } 
    605603