From 067fc117cbe137b1478172ef4dd3abece693d09b Mon Sep 17 00:00:00 2001 From: ryan Date: Thu, 13 May 2010 17:29:45 +0000 Subject: [PATCH] Add show_in_nav_menus flag to post type registration. Props williamsba1. fixes #13144 git-svn-id: http://svn.automattic.com/wordpress/trunk@14602 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/includes/nav-menu.php | 2 +- wp-includes/post.php | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/wp-admin/includes/nav-menu.php b/wp-admin/includes/nav-menu.php index 2c95a2c0a..d73ccaa2e 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 1be49f85c..348ddc491 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;