WordPress.org

Make WordPress Core

Ticket #18650: 18650.6.patch

File 18650.6.patch, 2.4 KB (added by joedolson, 5 years ago)

Refresh of patch.

  • wp-includes/default-widgets.php

     
    285285                }
    286286
    287287                if ( $d ) {
     288                        echo '<label class="screen-reader-text archives-label" for="' . $this->id_base . '-dropdown-' . $this->number . '">' . $title . '</label>';
     289
    288290?>
    289                 <select name="archive-dropdown" onchange='document.location.href=this.options[this.selectedIndex].value;'>
     291                <select id="<?php echo $this->id_base . '-dropdown-' . $this->number; ?>" name="archive-dropdown" onchange='document.location.href=this.options[this.selectedIndex].value;'>
    290292                        <?php
    291293                        /**
    292294                         * Filter the arguments for the Archives widget drop-down.
     
    322324                        }
    323325                        ?>
    324326
    325                         <option value=""><?php echo esc_attr( $label ); ?></option>
     327                        <option value=""><?php esc_attr_e( $label ); ?></option>
    326328                        <?php wp_get_archives( $dropdown_args ); ?>
    327329
    328330                </select>
     
    563565        }
    564566
    565567        public function widget( $args, $instance ) {
    566 
     568       
    567569                /** This filter is documented in wp-includes/default-widgets.php */
    568570                $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? __( 'Categories' ) : $instance['title'], $instance, $this->id_base );
    569571
     
    576578                        echo $args['before_title'] . $title . $args['after_title'];
    577579                }
    578580
    579                 $cat_args = array('orderby' => 'name', 'show_count' => $c, 'hierarchical' => $h);
     581                $cat_args = array( 'orderby' => 'name', 'show_count' => $c, 'hierarchical' => $h );
    580582
    581583                if ( $d ) {
     584                        static $first;
     585                        $id = isset( $first ) ? 'cat' : $args['widget_id'] . '-select';
     586                        $first = false;
     587                       
     588                        echo '<label class="screen-reader-text categories-label" for="' . $id . '">' . $title . '</label>';
    582589                        $cat_args['show_option_none'] = __('Select Category');
    583 
     590                        $cat_args['id'] = $id;
    584591                        /**
    585592                         * Filter the arguments for the Categories widget drop-down.
    586593                         *
     
    595602
    596603<script type='text/javascript'>
    597604/* <![CDATA[ */
    598         var dropdown = document.getElementById("cat");
     605(function() {
     606        var dropdown = document.getElementById("<?php echo $id; ?>");
    599607        function onCatChange() {
    600608                if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {
    601609                        location.href = "<?php echo home_url(); ?>/?cat="+dropdown.options[dropdown.selectedIndex].value;
     
    602610                }
    603611        }
    604612        dropdown.onchange = onCatChange;
     613})();
    605614/* ]]> */
    606615</script>
    607616