WordPress.org

Make WordPress Core

Ticket #13958: 13958.3.patch

File 13958.3.patch, 2.6 KB (added by ocean90, 7 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