WordPress.org

Make WordPress Core

Ticket #13958: informative.13958.2.diff

File informative.13958.2.diff, 2.5 KB (added by scribu, 7 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;