WordPress.org

Make WordPress Core

Ticket #13958: 13958.2.diff

File 13958.2.diff, 5.3 KB (added by garyc40, 7 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;