First pass at giving taxonomies a show_ui param. See #10773

git-svn-id: http://svn.automattic.com/wordpress/trunk@13216 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
dd32 2010-02-19 10:21:29 +00:00
parent fa9cd83410
commit 39620db24d
2 changed files with 25 additions and 6 deletions

View File

@ -57,7 +57,7 @@ $menu[5] = array( __('Posts'), 'edit_posts', 'edit.php', '', 'open-if-no-js menu
$i = 15; $i = 15;
foreach ( $wp_taxonomies as $tax ) { foreach ( $wp_taxonomies as $tax ) {
if ( ! in_array('post', (array) $tax->object_type, true) ) if ( ! $tax->show_ui || ! in_array('post', (array) $tax->object_type, true) )
continue; continue;
$submenu['edit.php'][$i++] = array( esc_attr($tax->label), 'manage_categories', 'edit-tags.php?taxonomy=' . $tax->name ); $submenu['edit.php'][$i++] = array( esc_attr($tax->label), 'manage_categories', 'edit-tags.php?taxonomy=' . $tax->name );
@ -94,7 +94,7 @@ foreach ( (array) get_post_types( array('show_ui' => true) ) as $ptype ) {
$i = 15; $i = 15;
foreach ( $wp_taxonomies as $tax ) { foreach ( $wp_taxonomies as $tax ) {
if ( ! in_array($ptype, (array) $tax->object_type, true) ) if ( ! $tax->show_ui || ! in_array($ptype, (array) $tax->object_type, true) )
continue; continue;
$submenu["edit.php?post_type=$ptype"][$i++] = array( esc_attr($tax->label), 'manage_categories', "edit-tags.php?taxonomy=$tax->name&post_type=$ptype" ); $submenu["edit.php?post_type=$ptype"][$i++] = array( esc_attr($tax->label), 'manage_categories', "edit-tags.php?taxonomy=$tax->name&post_type=$ptype" );

View File

@ -20,7 +20,10 @@ function create_initial_taxonomies() {
'label' => __('Categories'), 'label' => __('Categories'),
'singular_label' => __('Category'), 'singular_label' => __('Category'),
'query_var' => false, 'query_var' => false,
'rewrite' => false 'rewrite' => false,
'public' => true,
'show_ui' => true,
'_builtin' => true
) ) ; ) ) ;
register_taxonomy( 'post_tag', 'post', array( register_taxonomy( 'post_tag', 'post', array(
@ -29,13 +32,19 @@ function create_initial_taxonomies() {
'label' => __('Post Tags'), 'label' => __('Post Tags'),
'singular_label' => __('Post Tag'), 'singular_label' => __('Post Tag'),
'query_var' => false, 'query_var' => false,
'rewrite' => false 'rewrite' => false,
'public' => true,
'show_ui' => true,
'_builtin' => true
) ) ; ) ) ;
register_taxonomy( 'link_category', 'link', array( 'hierarchical' => false, register_taxonomy( 'link_category', 'link', array( 'hierarchical' => false,
'label' => __('Categories'), 'label' => __('Categories'),
'query_var' => false, 'query_var' => false,
'rewrite' => false 'rewrite' => false,
'public' => false,
'show_ui' => false,
'_builtin' => true,
) ) ; ) ) ;
} }
add_action( 'init', 'create_initial_taxonomies', 0 ); // highest priority add_action( 'init', 'create_initial_taxonomies', 0 ); // highest priority
@ -189,7 +198,14 @@ function register_taxonomy( $taxonomy, $object_type, $args = array() ) {
if ( ! is_array($wp_taxonomies) ) if ( ! is_array($wp_taxonomies) )
$wp_taxonomies = array(); $wp_taxonomies = array();
$defaults = array('hierarchical' => false, 'update_count_callback' => '', 'rewrite' => true, 'query_var' => true); $defaults = array( 'hierarchical' => false,
'update_count_callback' => '',
'rewrite' => true,
'query_var' => $taxonomy,
'public' => true,
'show_ui' => null,
'_builtin' => false
);
$args = wp_parse_args($args, $defaults); $args = wp_parse_args($args, $defaults);
if ( false !== $args['query_var'] && !empty($wp) ) { if ( false !== $args['query_var'] && !empty($wp) ) {
@ -210,6 +226,9 @@ function register_taxonomy( $taxonomy, $object_type, $args = array() ) {
$wp_rewrite->add_permastruct($taxonomy, "/{$args['rewrite']['slug']}/%$taxonomy%", $args['rewrite']['with_front']); $wp_rewrite->add_permastruct($taxonomy, "/{$args['rewrite']['slug']}/%$taxonomy%", $args['rewrite']['with_front']);
} }
if ( is_null($args['show_ui']) )
$args['show_ui'] = $args['public'];
foreach ( array('manage_cap', 'edit_cap', 'delete_cap') as $cap ) { foreach ( array('manage_cap', 'edit_cap', 'delete_cap') as $cap ) {
if ( empty($args[$cap]) ) if ( empty($args[$cap]) )
$args[$cap] = 'manage_categories'; $args[$cap] = 'manage_categories';