diff --git a/wp-includes/category-template.php b/wp-includes/category-template.php index 7e112f53dd..a000988554 100644 --- a/wp-includes/category-template.php +++ b/wp-includes/category-template.php @@ -314,8 +314,9 @@ function category_description( $category = 0 ) { * 'echo' (bool|int) default is 1 - Whether to display or retrieve content. * 'depth' (int) - The max depth. * 'tab_index' (int) - Tab index for select element. - * 'name' (string) - The name attribute value for selected element. - * 'class' (string) - The class attribute value for selected element. + * 'name' (string) - The name attribute value for select element. + * 'id' (string) - The ID attribute value for select element. Defaults to name if omitted. + * 'class' (string) - The class attribute value for select element. * 'selected' (int) - Which category ID is selected. * * The 'hierarchical' argument, which is disabled by default, will override the @@ -336,9 +337,10 @@ function wp_dropdown_categories( $args = '' ) { 'hide_empty' => 1, 'child_of' => 0, 'exclude' => '', 'echo' => 1, 'selected' => 0, 'hierarchical' => 0, - 'name' => 'cat', 'class' => 'postform', - 'depth' => 0, 'tab_index' => 0, - 'taxonomy' => 'category', 'hide_if_empty' => false + 'name' => 'cat', 'id' => '', + 'class' => 'postform', 'depth' => 0, + 'tab_index' => 0, 'taxonomy' => 'category', + 'hide_if_empty' => false ); $defaults['selected'] = ( is_category() ) ? get_query_var( 'cat' ) : 0; @@ -357,11 +359,12 @@ function wp_dropdown_categories( $args = '' ) { $tab_index_attribute = " tabindex=\"$tab_index\""; $categories = get_terms( $taxonomy, $r ); - $name = esc_attr($name); - $class = esc_attr($class); + $name = esc_attr( $name ); + $class = esc_attr( $class ); + $id = $id ? esc_attr( $id ) : $name; if ( ! $r['hide_if_empty'] || ! empty($categories) ) - $output = "\n"; else $output = ''; diff --git a/wp-includes/user.php b/wp-includes/user.php index f1d6ef24ef..5138eb034f 100644 --- a/wp-includes/user.php +++ b/wp-includes/user.php @@ -403,11 +403,12 @@ function setup_userdata($for_user_id = '') { *
  • order - Default is 'ASC'. Can also be 'DESC'.
  • *
  • include - User IDs to include.
  • *
  • exclude - User IDs to exclude.
  • - *
  • multi - Default is 'false'. Whether to skip the ID attribute on the 'select' element.
  • + *
  • multi - Default is 'false'. Whether to skip the ID attribute on the 'select' element. A 'true' value is overridden when id argument is set.
  • *
  • show - Default is 'display_name'. User table column to display. If the selected item is empty then the user_login will be displayed in parentesis
  • *
  • echo - Default is '1'. Whether to display or retrieve content.
  • *
  • selected - Which User ID is selected.
  • *
  • name - Default is 'user'. Name attribute of select element.
  • + *
  • id - Default is the value of the 'name' parameter. ID attribute of select element.
  • *
  • class - Class attribute of select element.
  • *
  • blog_id - ID of blog (Multisite only). Defaults to ID of current blog.
  • * @@ -426,6 +427,7 @@ function wp_dropdown_users( $args = '' ) { 'include' => '', 'exclude' => '', 'multi' => 0, 'show' => 'display_name', 'echo' => 1, 'selected' => 0, 'name' => 'user', 'class' => '', 'blog_id' => $GLOBALS['blog_id'], + 'id' => '', ); $defaults['selected'] = is_author() ? get_query_var( 'author' ) : 0; @@ -459,9 +461,13 @@ function wp_dropdown_users( $args = '' ) { $output = ''; if ( !empty($users) ) { - $id = $multi ? "" : "id='$name'"; + $name = esc_attr( $name ); + if ( $multi && ! $id ) + $id = ''; + else + $id = $id ? " id='" . esc_attr( $id ) . "'" : "id='$name'"; - $output = "\n"; if ( $show_option_all ) $output .= "\t\n";