From bb09cf859a92a26ef326b0b55fc5116e6d00f0cf Mon Sep 17 00:00:00 2001 From: Kushagra Goyal Date: Fri, 4 Jul 2025 13:20:59 +0530 Subject: [PATCH 1/2] fix: resolve nav menu item validation to check for published status --- src/wp-includes/nav-menu.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wp-includes/nav-menu.php b/src/wp-includes/nav-menu.php index d808c4e212d39..585326bf9f1b9 100644 --- a/src/wp-includes/nav-menu.php +++ b/src/wp-includes/nav-menu.php @@ -886,7 +886,7 @@ function wp_setup_nav_menu_item( $menu_item ) { $menu_item->_invalid = true; } - if ( 'trash' === get_post_status( $menu_item->object_id ) ) { + if ( 'publish' !== get_post_status( $menu_item->object_id ) ) { $menu_item->_invalid = true; } From 9576fa04072a3409976768fd57031688cef4e87a Mon Sep 17 00:00:00 2001 From: Kushagra Goyal Date: Thu, 4 Sep 2025 16:10:39 +0530 Subject: [PATCH 2/2] fix: enhance nav menu item validation for private post access --- src/wp-includes/nav-menu.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/wp-includes/nav-menu.php b/src/wp-includes/nav-menu.php index 585326bf9f1b9..7c6e74250518b 100644 --- a/src/wp-includes/nav-menu.php +++ b/src/wp-includes/nav-menu.php @@ -886,7 +886,11 @@ function wp_setup_nav_menu_item( $menu_item ) { $menu_item->_invalid = true; } - if ( 'publish' !== get_post_status( $menu_item->object_id ) ) { + $post_status = get_post_status( $menu_item->object_id ); + + if ( 'private' === $post_status && ! current_user_can( 'read_private_posts' ) ) { + $menu_item->_invalid = true; + } elseif ( 'private' !== $post_status && ! is_post_status_viewable( $post_status ) ) { $menu_item->_invalid = true; }