WordPress.org

Make WordPress Core

Ticket #13958: informative.13958.2.diff

File informative.13958.2.diff, 2.5 KB (added by scribu, 3 years ago)
  • wp-includes/nav-menu.php

     
    559559                        $menu_item->type = empty( $menu_item->type ) ? get_post_meta( $menu_item->ID, '_menu_item_type', true ) : $menu_item->type; 
    560560 
    561561                        if ( 'post_type' == $menu_item->type ) { 
    562                                 $object = get_post_type_object( $menu_item->object ); 
    563                                 $menu_item->type_label = $object->labels->singular_name; 
     562                                if ( post_type_exists( $menu_item->object ) ) { 
     563                                        $menu_item->type_label = get_post_type_object( $menu_item->object )->labels->singular_name; 
     564                                } else { 
     565                                        $menu_item->type_label = $menu_item->object; 
     566                                        $menu_item->_invalid = true; 
     567                                } 
     568 
    564569                                $menu_item->url = get_permalink( $menu_item->object_id ); 
    565570 
    566571                                $original_object = get_post( $menu_item->object_id ); 
     
    568573                                $menu_item->title = '' == $menu_item->post_title ? $original_title : $menu_item->post_title; 
    569574 
    570575                        } elseif ( 'taxonomy' == $menu_item->type ) { 
    571                                 $object = get_taxonomy( $menu_item->object ); 
    572                                 $menu_item->type_label = $object->labels->singular_name; 
     576                                if ( taxonomy_exists( $menu_item->object ) ) { 
     577                                        $menu_item->type_label = get_taxonomy( $menu_item->object )->labels->singular_name; 
     578                                } else { 
     579                                        $menu_item->type_label = $menu_item->object; 
     580                                        $menu_item->_invalid = true; 
     581                                } 
     582 
    573583                                $term_url = get_term_link( (int) $menu_item->object_id, $menu_item->object ); 
    574584                                $menu_item->url = !is_wp_error( $term_url ) ? $term_url : ''; 
    575585 
  • wp-admin/includes/nav-menu.php

     
    6565                        'menu-item-edit-' . ( ( isset( $_GET['edit-menu-item'] ) && $item_id == $_GET['edit-menu-item'] ) ? 'active' : 'inactive'), 
    6666                ); 
    6767 
     68                if ( isset( $item->_invalid ) ) 
     69                        $classes[] = 'menu-item-invalid'; 
     70 
    6871                $title = $item->title; 
    6972 
    7073                if ( isset( $item->post_status ) && 'draft' == $item->post_status ) { 
  • wp-admin/css/nav-menu.dev.css

     
    313313        -khtml-border-radius: 6px; 
    314314        word-wrap: break-word; 
    315315} 
     316.menu-item-invalid .menu-item-handle { 
     317        background: pink; 
     318} 
    316319.menu-item-edit-active .menu-item-handle { 
    317320        -moz-border-radius: 6px 6px 0 0; 
    318321        -webkit-border-bottom-right-radius: 0;