WordPress.org

Make WordPress Core

Ticket #18650: 18650.3.patch

File 18650.3.patch, 2.3 KB (added by DrewAPicture, 5 years ago)
  • src/wp-includes/default-widgets.php

     
    285285                }
    286286
    287287                if ( $d ) {
     288                        $label_for = $this->id_base . '-dropdown-' . $this->number;
     289                        echo '<label class="screen-reader-text archives-label" for="' . esc_attr( $label_for ) . '">' . $title . '</label>';
     290
    288291?>
    289                 <select name="archive-dropdown" onchange='document.location.href=this.options[this.selectedIndex].value;'>
     292                <select id="<?php echo esc_attr( $label_for ); ?>" name="archive-dropdown" onchange='document.location.href=this.options[this.selectedIndex].value;'>
    290293                        <?php
    291294                        /**
    292295                         * Filter the arguments for the Archives widget drop-down.
     
    563566        }
    564567
    565568        public function widget( $args, $instance ) {
    566 
     569       
    567570                /** This filter is documented in wp-includes/default-widgets.php */
    568571                $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? __( 'Categories' ) : $instance['title'], $instance, $this->id_base );
    569572
     
    576579                        echo $args['before_title'] . $title . $args['after_title'];
    577580                }
    578581
    579                 $cat_args = array('orderby' => 'name', 'show_count' => $c, 'hierarchical' => $h);
     582                $cat_args = array(
     583                        'orderby'      => 'name',
     584                        'show_count'   => $c,
     585                        'hierarchical' => $h
     586                );
    580587
    581588                if ( $d ) {
    582                         $cat_args['show_option_none'] = __('Select Category');
     589                        static $first;
    583590
     591                        $id = isset( $first ) ? 'cat' : $args['widget_id'] . '-select';
     592                        $first = false;
     593                       
     594                        echo '<label class="screen-reader-text categories-label" for="' . esc_attr( $id ) . '">' . $title . '</label>';
     595
     596                        $cat_args['show_option_none'] = __( 'Select Category' );
     597                        $cat_args['id'] = $id;
     598
    584599                        /**
    585600                         * Filter the arguments for the Categories widget drop-down.
    586601                         *
     
    595610
    596611<script type='text/javascript'>
    597612/* <![CDATA[ */
    598         var dropdown = document.getElementById("cat");
     613(function() {
     614        var dropdown = document.getElementById("<?php echo esc_js( $id ); ?>");
    599615        function onCatChange() {
    600616                if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {
    601617                        location.href = "<?php echo home_url(); ?>/?cat="+dropdown.options[dropdown.selectedIndex].value;
     
    602618                }
    603619        }
    604620        dropdown.onchange = onCatChange;
     621})();
    605622/* ]]> */
    606623</script>
    607624