WordPress.org

Make WordPress Core

Ticket #13958: 13958.2.diff

File 13958.2.diff, 5.3 KB (added by garyc40, 3 years ago)

fixed typo

  • wp-admin/includes/nav-menu.php

    diff --git wp-admin/includes/nav-menu.php wp-admin/includes/nav-menu.php
    index 6e92928..bd1064a 100644
    class Walker_Nav_Menu_Edit extends Walker_Nav_Menu { 
    5454                $original_title = ''; 
    5555                if ( 'taxonomy' == $item->type ) { 
    5656                        $original_title = get_term_field( 'name', $item->object_id, $item->object, 'raw' ); 
     57                        if ( is_wp_error( $original_title ) ) 
     58                                $original_title = $original_title->get_error_message(); 
    5759                } elseif ( 'post_type' == $item->type ) { 
    5860                        $original_object = get_post( $item->object_id ); 
    5961                        $original_title = $original_object->post_title; 
    function wp_get_nav_menu_to_edit( $menu_id = 0 ) { 
    10731075                        return new WP_Error( 'menu_walker_not_exist', sprintf( __('The Walker class named <strong>%s</strong> does not exist.'), $walker_class_name ) ); 
    10741076 
    10751077                $some_pending_menu_items = false; 
     1078                $invalid_items = false; 
    10761079                foreach( (array) $menu_items as $menu_item ) { 
    1077                         if ( isset( $menu_item->post_status ) && 'draft' == $menu_item->post_status ) 
     1080                        if ( isset( $menu_item->post_status ) && 'draft' == $menu_item->post_status ) { 
    10781081                                $some_pending_menu_items = true; 
     1082                                 
     1083                                if ( ( $menu_item->type == 'post_type' && ! post_type_exists( $menu_item->object ) ) || ( ( $menu_item->type == 'taxonomy' ) && ! taxonomy_exists( $menu_item->object ) ) ) 
     1084                                        $invalid_items = true; 
     1085                        } 
    10791086                } 
    10801087 
    10811088                if ( $some_pending_menu_items ) 
    1082                         $result .= '<div class="updated inline"><p>' . __('Click Save Menu to make pending menu items public.') . '</p></div>'; 
     1089                        $result .= '<div class="updated inline"><p>' . __('Click Save Menu to make pending menu items public.') . ( $invalid_items ? '<br />' . __( 'However, menu items associated with invalid post types or taxonomies will not be made public.' ) : '' ) . '</p></div>'; 
    10831090 
    10841091                $result .= '<ul class="menu" id="menu-to-edit"> '; 
    10851092                $result .= walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $menu_items), 0, (object) array('walker' => $walker ) ); 
  • wp-admin/nav-menus.php

    diff --git wp-admin/nav-menus.php wp-admin/nav-menus.php
    index 1e39805..11117cb 100644
    switch ( $action ) { 
    301301 
    302302                // update existing menu 
    303303                } else { 
    304  
    305304                        $_menu_object = wp_get_nav_menu_object( $nav_menu_selected_id ); 
    306305 
    307306                        $menu_title = trim( esc_html( $_POST['menu-name'] ) ); 
  • wp-includes/nav-menu.php

    diff --git wp-includes/nav-menu.php wp-includes/nav-menu.php
    index e1af8f7..4930125 100644
    function wp_update_nav_menu_item( $menu_id = 0, $menu_item_db_id = 0, $menu_item 
    324324                        $original_parent = get_term_field( 'parent', $args['menu-item-object-id'], $args['menu-item-object'], 'raw' ); 
    325325                        $original_title = get_term_field( 'name', $args['menu-item-object-id'], $args['menu-item-object'], 'raw' ); 
    326326                } elseif ( 'post_type' == $args['menu-item-type'] ) { 
    327  
    328327                        $original_object = get_post( $args['menu-item-object-id'] ); 
    329328                        $original_parent = (int) $original_object->post_parent; 
    330329                        $original_title = $original_object->post_title; 
    function wp_get_nav_menu_items( $menu, $args = array() ) { 
    512511        } 
    513512 
    514513        $items = array_map( 'wp_setup_nav_menu_item', $items ); 
     514         
     515        if ( ! in_array( $args['post_status'], array( 'draft', 'any' ) ) ) 
     516                $items = array_filter( $items, create_function( '$item', 'return $item->post_status != "draft";' ) ); 
    515517 
    516518        if ( ARRAY_A == $args['output'] ) { 
    517519                $GLOBALS['_menu_item_sort_prop'] = $args['output_key']; 
    function wp_setup_nav_menu_item( $menu_item ) { 
    560562 
    561563                        if ( 'post_type' == $menu_item->type ) { 
    562564                                $object = get_post_type_object( $menu_item->object ); 
    563                                 $menu_item->type_label = $object->labels->singular_name; 
    564                                 $menu_item->url = get_permalink( $menu_item->object_id ); 
    565  
     565                                if ( empty( $object ) ) { 
     566                                        $menu_item->type_label = __( 'Invalid post type' ); 
     567                                        $menu_item->url = ''; 
     568                                        $menu_item->post_status = 'draft'; 
     569                                } else { 
     570                                        $menu_item->type_label = $object->labels->singular_name; 
     571                                        $menu_item->url = get_permalink( $menu_item->object_id ); 
     572                                } 
    566573                                $original_object = get_post( $menu_item->object_id ); 
    567574                                $original_title = $original_object->post_title; 
    568575                                $menu_item->title = '' == $menu_item->post_title ? $original_title : $menu_item->post_title; 
    569  
    570576                        } elseif ( 'taxonomy' == $menu_item->type ) { 
    571577                                $object = get_taxonomy( $menu_item->object ); 
    572                                 $menu_item->type_label = $object->labels->singular_name; 
     578                                $original_title = get_term_field( 'name', $menu_item->object_id, $menu_item->object, 'raw' ); 
     579                                if ( empty( $object ) || is_wp_error( $original_title ) ) { 
     580                                        $menu_item->type_label = __( 'Invalid Taxonomy' ); 
     581                                        $menu_item->title = ''; 
     582                                        $menu_item->post_status = 'draft'; 
     583                                } else { 
     584                                        $menu_item->type_label = $object->labels->singular_name; 
     585                                        $menu_item->title = '' == $menu_item->post_title ? $original_title : $menu_item->post_title; 
     586                                } 
     587                                 
    573588                                $term_url = get_term_link( (int) $menu_item->object_id, $menu_item->object ); 
    574589                                $menu_item->url = !is_wp_error( $term_url ) ? $term_url : ''; 
    575  
    576                                 $original_title = get_term_field( 'name', $menu_item->object_id, $menu_item->object, 'raw' ); 
    577                                 $menu_item->title = '' == $menu_item->post_title ? $original_title : $menu_item->post_title; 
    578  
    579590                        } else { 
    580591                                $menu_item->type_label = __('Custom'); 
    581592                                $menu_item->title = $menu_item->post_title;