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:
parent
fa9cd83410
commit
39620db24d
|
@ -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" );
|
||||||
|
|
|
@ -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';
|
||||||
|
|
Loading…
Reference in New Issue