WordPress.org

Make WordPress Core

Ticket #11612: 11612.3.diff

File 11612.3.diff, 2.1 KB (added by scribu, 6 years ago)

Cleaner code

  • wp-includes/default-widgets.php

     
    977977        function widget( $args, $instance ) { 
    978978                extract($args); 
    979979                $title = apply_filters('widget_title', empty($instance['title']) ? __('Tags') : $instance['title']); 
     980                $current_tax = $this->_get_current_tax($instance); 
    980981 
    981982                echo $before_widget; 
    982983                if ( $title ) 
    983984                        echo $before_title . $title . $after_title; 
    984985                echo '<div>'; 
    985                 wp_tag_cloud(apply_filters('widget_tag_cloud_args', array())); 
     986                wp_tag_cloud( apply_filters('widget_tag_cloud_args', array('taxonomy' => $current_tax) ) ); 
    986987                echo "</div>\n"; 
    987988                echo $after_widget; 
    988989        } 
    989990 
    990991        function update( $new_instance, $old_instance ) { 
    991992                $instance['title'] = strip_tags(stripslashes($new_instance['title'])); 
     993                $instance['taxonomy'] = stripslashes($new_instance['taxonomy']); 
    992994                return $instance; 
    993995        } 
    994996 
    995997        function form( $instance ) { 
     998                $current_tax = $this->_get_current_tax($instance); 
    996999?> 
    9971000        <p><label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:') ?></label> 
    9981001        <input type="text" class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" value="<?php if (isset ( $instance['title'])) {echo esc_attr( $instance['title'] );} ?>" /></p> 
    999 <?php 
     1002        <p><label for="<?php echo $this->get_field_id('taxonomy'); ?>"><?php _e('Taxonomy:') ?></label> 
     1003        <select class="widefat" id="<?php echo $this->get_field_id('taxonomy'); ?>" name="<?php echo $this->get_field_name('taxonomy'); ?>"> 
     1004        <?php foreach ( get_object_taxonomies('post') as $tax ) : 
     1005                                $t = get_taxonomy($tax); 
     1006                                if ( empty($t->label) ) 
     1007                                        continue; 
     1008        ?> 
     1009                <option value="<?php echo esc_attr($tax) ?>" <?php selected($tax, $current_tax) ?>><?php echo $t->label ?></option> 
     1010        <?php endforeach; ?> 
     1011        </select></p><?php 
    10001012        } 
     1013 
     1014        function _get_current_tax($instance) { 
     1015                if ( isset($instance['taxonomy']) && is_taxonomy($instance['taxonomy']) )  
     1016                        return $instance['taxonomy']; 
     1017 
     1018                return 'post_tag'; 
     1019        } 
    10011020} 
    10021021 
    10031022/**