diff --git a/wp-admin/includes/meta-boxes.php b/wp-admin/includes/meta-boxes.php
index c090e8984e..67dbdade9d 100644
--- a/wp-admin/includes/meta-boxes.php
+++ b/wp-admin/includes/meta-boxes.php
@@ -239,7 +239,7 @@ if ( !in_array( $post->post_status, array('publish', 'future', 'private') ) || 0
function post_tags_meta_box($post, $box) {
$tax_name = esc_attr(substr($box['id'], 8));
$taxonomy = get_taxonomy($tax_name);
- if ( !current_user_can($taxonomy->manage_cap) )
+ if ( !current_user_can($taxonomy->manage_cap) ) // @todo: Display the terms, do not edit.
return;
$helps = isset($taxonomy->helps) ? esc_attr($taxonomy->helps) : __('Separate tags with commas.');
?>
@@ -279,8 +279,6 @@ function post_categories_meta_box( $post, $box ) {
extract( wp_parse_args($args, $defaults), EXTR_SKIP );
$tax = get_taxonomy($taxonomy);
- if ( !current_user_can($tax->manage_cap) )
- return;
?>
@@ -296,7 +294,7 @@ function post_categories_meta_box( $post, $box ) {
diff --git a/wp-admin/includes/template.php b/wp-admin/includes/template.php
index 81c8f70e09..8704ee79dc 100644
--- a/wp-admin/includes/template.php
+++ b/wp-admin/includes/template.php
@@ -474,7 +474,7 @@ class Walker_Category_Checklist extends Walker {
$name = 'tax_input['.$taxonomy.']';
$class = in_array( $category->term_id, $popular_cats ) ? ' class="popular-category"' : '';
- $output .= "\n- " . '';
+ $output .= "\n
- " . '';
}
function end_el(&$output, $category, $depth, $args) {
@@ -528,6 +528,9 @@ function wp_terms_checklist($post_id = 0, $args = array()) {
$args = array('taxonomy' => $taxonomy);
+ $tax = get_taxonomy($taxonomy);
+ $args['disabled'] = !current_user_can($tax->manage_cap);
+
if ( is_array( $selected_cats ) )
$args['selected_cats'] = $selected_cats;
elseif ( $post_id )
@@ -588,6 +591,12 @@ function wp_popular_terms_checklist( $taxonomy, $default = 0, $number = 10, $ech
$terms = get_terms( $taxonomy, array( 'orderby' => 'count', 'order' => 'DESC', 'number' => $number, 'hierarchical' => false ) );
+ $tax = get_taxonomy($taxonomy);
+ if ( ! current_user_can($tax->manage_cap) )
+ $disabled = 'disabled="disabled"';
+ else
+ $disabled = '';
+
$popular_ids = array();
foreach ( (array) $terms as $term ) {
$popular_ids[] = $term->term_id;
@@ -599,7 +608,7 @@ function wp_popular_terms_checklist( $taxonomy, $default = 0, $number = 10, $ech
-