diff --git a/src/wp-includes/nav-menu.php b/src/wp-includes/nav-menu.php index 7208d9bbf5..70a450e395 100644 --- a/src/wp-includes/nav-menu.php +++ b/src/wp-includes/nav-menu.php @@ -762,13 +762,15 @@ function wp_setup_nav_menu_item( $menu_item ) { $object = get_post_type_object( $menu_item->object ); if ( $object ) { $menu_item->title = '' == $menu_item->post_title ? $object->labels->archives : $menu_item->post_title; + $post_type_description = $object->description; } else { $menu_item->_invalid = true; + $post_type_description = ''; } $menu_item->type_label = __( 'Post Type Archive' ); $post_content = wp_trim_words( $menu_item->post_content, 200 ); - $post_type_description = '' == $post_content ? $object->description : $post_content; + $post_type_description = '' == $post_content ? $post_type_description : $post_content; $menu_item->url = get_post_type_archive_link( $menu_item->object ); } elseif ( 'taxonomy' == $menu_item->type ) { $object = get_taxonomy( $menu_item->object ); diff --git a/tests/phpunit/tests/post/nav-menu.php b/tests/phpunit/tests/post/nav-menu.php index d2cec8039b..693f1fb40a 100644 --- a/tests/phpunit/tests/post/nav-menu.php +++ b/tests/phpunit/tests/post/nav-menu.php @@ -258,4 +258,21 @@ class Test_Nav_Menus extends WP_UnitTestCase { $this->assertEquals( $post_type_slug , $post_type_archive_item->title ); $this->assertEquals( $menu_item_description , $post_type_archive_item->description ); } + + /** + * @ticket 35324 + */ + function test_wp_setup_nav_menu_item_for_unknown_post_type_archive_no_description() { + + $post_type_slug = rand_str( 12 ); + + $post_type_archive_item_id = wp_update_nav_menu_item( $this->menu_id, 0, array( + 'menu-item-type' => 'post_type_archive', + 'menu-item-object' => $post_type_slug, + 'menu-item-status' => 'publish' + ) ); + $post_type_archive_item = wp_setup_nav_menu_item( get_post( $post_type_archive_item_id ) ); + + $this->assertEmpty( $post_type_archive_item->description ); + } }