WordPress.org

Make WordPress Core

Ticket #16734: category-template.php.diff

File category-template.php.diff, 1.6 KB (added by grandslambert, 3 years ago)

Change in the category-template.php to support multipe select boxes.

  • category-template.php

     
    309309                'name' => 'cat', 'id' => '', 
    310310                'class' => 'postform', 'depth' => 0, 
    311311                'tab_index' => 0, 'taxonomy' => 'category', 
    312                 'hide_if_empty' => false 
     312                'hide_if_empty' => false, 'multiple' => false 
    313313        ); 
    314314 
    315315        $defaults['selected'] = ( is_category() ) ? get_query_var( 'cat' ) : 0; 
     
    335335 
    336336        $categories = get_terms( $taxonomy, $r ); 
    337337        $name = esc_attr( $name ); 
    338         $class = esc_attr( $class ); 
    339338        $id = $id ? esc_attr( $id ) : $name; 
    340339 
    341         if ( ! $r['hide_if_empty'] || ! empty($categories) ) 
    342                 $output = "<select name='$name' id='$id' class='$class' $tab_index_attribute>\n"; 
     340        if ( ! $r['hide_if_empty'] || ! empty($categories) ) { 
     341                if ( $r['multiple'] ) { 
     342                     $multiple = "multiple='true'"; 
     343                     $class = 'postform multiple'; 
     344                } else { 
     345                     $multiple = ''; 
     346                     $class = esc_attr( $class ); 
     347                } 
     348 
     349                $output = "<select name='$name' id='$id' class='$class' $tab_index_attribute $multiple>\n"; 
     350        } 
    343351        else 
    344352                $output = ''; 
    345353 
     
    948956 
    949957                $cat_name = apply_filters('list_cats', $category->name, $category); 
    950958                $output .= "\t<option class=\"level-$depth\" value=\"".$category->term_id."\""; 
    951                 if ( $category->term_id == $args['selected'] ) 
     959                if ( in_array($category->term_id, (array) $args['selected'] ) ) 
    952960                        $output .= ' selected="selected"'; 
    953961                $output .= '>'; 
    954962                $output .= $pad.$cat_name;