diff --git a/wp-admin/includes/nav-menu.php b/wp-admin/includes/nav-menu.php index 2c95a2c0a2..d73ccaa2e0 100644 --- a/wp-admin/includes/nav-menu.php +++ b/wp-admin/includes/nav-menu.php @@ -362,7 +362,7 @@ function wp_initial_nav_menu_meta_boxes() { * @since 3.0.0 */ function wp_nav_menu_post_type_meta_boxes() { - $post_types = get_post_types( array( 'public' => true ), 'object' ); + $post_types = get_post_types( array( 'show_in_nav_menus' => true ), 'object' ); if ( ! $post_types ) return; diff --git a/wp-includes/post.php b/wp-includes/post.php index 1be49f85c0..348ddc491f 100644 --- a/wp-includes/post.php +++ b/wp-includes/post.php @@ -800,7 +800,7 @@ function register_post_type($post_type, $args = array()) { '_builtin' => false, '_edit_link' => 'post.php?post=%d', 'capability_type' => 'post', 'capabilities' => array(), 'hierarchical' => false, 'public' => false, 'rewrite' => true, 'query_var' => true, 'supports' => array(), 'register_meta_box_cb' => null, 'taxonomies' => array(), 'show_ui' => null, 'menu_position' => null, 'menu_icon' => null, - 'permalink_epmask' => EP_PERMALINK, 'can_export' => true, + 'permalink_epmask' => EP_PERMALINK, 'can_export' => true, 'show_in_nav_menus' => null ); $args = wp_parse_args($args, $defaults); $args = (object) $args; @@ -816,6 +816,10 @@ function register_post_type($post_type, $args = array()) { if ( null === $args->show_ui ) $args->show_ui = $args->public; + // Whether to show this type in nav-menus.php. Defaults to the setting for public. + if ( null === $args->show_in_nav_menus ) + $args->show_in_nav_menus = $args->public; + // If not set, default to true if not public, false if public. if ( null === $args->exclude_from_search ) $args->exclude_from_search = !$args->public;