Make WordPress Core

Ticket #12494: 12494.patch

File 12494.patch, 2.9 KB (added by jfarthing84, 10 years ago)

Refresh against [30972]

  • wp-includes/post-template.php

     
    950950                'selected' => 0, 'echo' => 1,
    951951                'name' => 'page_id', 'id' => '',
    952952                'show_option_none' => '', 'show_option_no_change' => '',
    953                 'option_none_value' => ''
     953                'option_none_value' => '',
     954                'optio_value_field' => 'id'
    954955        );
    955956
    956957        $r = wp_parse_args( $args, $defaults );
     
    14121413        public function start_el( &$output, $page, $depth = 0, $args = array(), $id = 0 ) {
    14131414                $pad = str_repeat(' ', $depth * 3);
    14141415
    1415                 $output .= "\t<option class=\"level-$depth\" value=\"$page->ID\"";
    1416                 if ( $page->ID == $args['selected'] )
     1416                if ( 'slug' == $args['option_value_field'] ) {
     1417                        $value = $page->post_name;
     1418                        $selected = $page->post_name == $args['selected'];
     1419                } else {
     1420                        $value = $page->ID;
     1421                        $selected = $page->ID == $args['selected'];
     1422                }
     1423
     1424                $output .= "\t<option class=\"level-$depth\" value=\"$value\"";
     1425                if ( $selected )
    14171426                        $output .= ' selected="selected"';
    14181427                $output .= '>';
    14191428
  • wp-includes/category-template.php

     
    291291 *     'show_option_all' (string) - Text to display for showing all categories.
    292292 *     'show_option_none' (string) - Text to display for showing no categories.
    293293 *     'option_none_value' (mixed) - Value to use when no category is selected.
     294 *     'option_value_field' (string) - What column to use for the option value
     295 * attribute. Can either be 'slug' or 'id'. Defaults to 'id'.
    294296 *     'orderby' (string) default is 'ID' - What column to use for ordering the
    295297 * categories.
    296298 *     'order' (string) default is 'ASC' - What direction to order categories.
     
    330332                'name' => 'cat', 'id' => '',
    331333                'class' => 'postform', 'depth' => 0,
    332334                'tab_index' => 0, 'taxonomy' => 'category',
    333                 'hide_if_empty' => false, 'option_none_value' => -1
     335                'hide_if_empty' => false, 'option_none_value' => -1,
     336                'option_value_field' => 'id'
    334337        );
    335338
    336339        $defaults['selected'] = ( is_category() ) ? get_query_var( 'cat' ) : 0;
     
    10981101                /** This filter is documented in wp-includes/category-template.php */
    10991102                $cat_name = apply_filters( 'list_cats', $category->name, $category );
    11001103
    1101                 $output .= "\t<option class=\"level-$depth\" value=\"".$category->term_id."\"";
    1102                 if ( $category->term_id == $args['selected'] )
     1104                if ( 'slug' == $args['option_value_field'] ) {
     1105                        $value = $category->slug;
     1106                        $selected = $category->slug == $args['selected'];
     1107                } else {
     1108                        $value = $category->term_id;
     1109                        $selected = $category->term_id == $args['selected'];
     1110                }
     1111
     1112                $output .= "\t<option class=\"level-$depth\" value=\"$value\"";
     1113                if ( $selected )
    11031114                        $output .= ' selected="selected"';
    11041115                $output .= '>';
    11051116                $output .= $pad.$cat_name;