Index: src/wp-admin/css/nav-menus.css
===================================================================
--- src/wp-admin/css/nav-menus.css	(revision 40304)
+++ src/wp-admin/css/nav-menus.css	(working copy)
@@ -460,6 +460,11 @@
 	border-color: #f1acb1;
 }
 
+#menu-to-edit .menu-item-unpublished .menu-item-handle {
+	background: #fff8e5;
+	border-color: #ffb900;
+}
+
 .no-js .menu-item-edit-active .item-edit {
 	display: none;
 }
Index: src/wp-admin/includes/class-walker-nav-menu-edit.php
===================================================================
--- src/wp-admin/includes/class-walker-nav-menu-edit.php	(revision 40304)
+++ src/wp-admin/includes/class-walker-nav-menu-edit.php	(working copy)
@@ -101,6 +101,10 @@
 			$classes[] = 'pending';
 			/* translators: %s: title of menu item in draft status */
 			$title = sprintf( __('%s (Pending)'), $item->title );
+		} elseif ( 'post_type' === $item->type && 'publish' !== get_post_status( $item->object_id ) ) {
+			$classes[] = 'menu-item-unpublished';
+			/* translators: %s: title of menu item which is unpublished */
+			$title = sprintf( __( '%s (Unpublished)' ), $item->title );
 		}
 
 		$title = ( ! isset( $item->label ) || '' == $item->label ) ? $title : $item->label;
Index: src/wp-admin/includes/nav-menu.php
===================================================================
--- src/wp-admin/includes/nav-menu.php	(revision 40304)
+++ src/wp-admin/includes/nav-menu.php	(working copy)
@@ -938,12 +938,19 @@
 			);
 		}
 
-		$some_pending_menu_items = $some_invalid_menu_items = false;
+		$some_pending_menu_items = $some_invalid_menu_items = $some_unpublished_menu_items = false;
 		foreach ( (array) $menu_items as $menu_item ) {
-			if ( isset( $menu_item->post_status ) && 'draft' == $menu_item->post_status )
-				$some_pending_menu_items = true;
-			if ( ! empty( $menu_item->_invalid ) )
+			if ( isset( $menu_item->post_status ) && 'draft' == $menu_item->post_status ) {
+			$some_pending_menu_items = true;
+		}
+
+			if ( ! empty( $menu_item->_invalid ) ) {
 				$some_invalid_menu_items = true;
+			}
+
+			if ( 'post_type' === $menu_item->type && 'publish' !== get_post_status( $menu_item->object_id ) ) {
+				$some_unpublished_menu_items = true;
+			}
 		}
 
 		if ( $some_pending_menu_items ) {
@@ -954,6 +961,10 @@
 			$result .= '<div class="notice notice-error notice-alt inline"><p>' . __( 'There are some invalid menu items. Please check or delete them.' ) . '</p></div>';
 		}
 
+		if ( $some_unpublished_menu_items ) {
+			$result .= '<div class="notice notice-warning notice-alt inline"><p>' . __( 'Some menu items are unpublished. They will not appear until published.' ) . '</p></div>';
+		}
+
 		$result .= '<ul class="menu" id="menu-to-edit"> ';
 		$result .= walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $menu_items), 0, (object) array('walker' => $walker ) );
 		$result .= ' </ul> ';
Index: src/wp-includes/nav-menu.php
===================================================================
--- src/wp-includes/nav-menu.php	(revision 40304)
+++ src/wp-includes/nav-menu.php	(working copy)
@@ -574,6 +574,21 @@
 }
 
 /**
+ * Determine if a menu item is published.
+ *
+ * @link https://core.trac.wordpress.org/ticket/13958
+ *
+ * @since 4.8.0
+ * @access private
+ *
+ * @param object $item The menu item to check.
+ * @return bool False if invalid, otherwise true.
+ */
+function _is_published_nav_menu_item( $item ) {
+	return 'publish' === get_post_status( $item->object_id );
+}
+
+/**
  * Return all menu items of a navigation menu.
  *
  * @since 3.0.0
@@ -648,6 +663,7 @@
 
 	if ( ! is_admin() ) { // Remove invalid items only in front end
 		$items = array_filter( $items, '_is_valid_nav_menu_item' );
+		$items = array_filter( $items, '_is_published_nav_menu_item' );
 	}
 
 	if ( ARRAY_A == $args['output'] ) {
