[wp-trac] [WordPress Trac] #33452: wp_dropdown_categories doesn't respect show_option_all

WordPress Trac noreply at wordpress.org
Tue Sep 8 19:03:19 UTC 2015


#33452: wp_dropdown_categories doesn't respect show_option_all
--------------------------+---------------------------
 Reporter:  dfellini      |       Owner:  boonebgorges
     Type:  defect (bug)  |      Status:  closed
 Priority:  normal        |   Milestone:  4.3.1
Component:  Taxonomy      |     Version:  4.3
 Severity:  normal        |  Resolution:  fixed
 Keywords:  fixed-major   |     Focuses:
--------------------------+---------------------------
Changes (by boonebgorges):

 * status:  reopened => closed
 * resolution:   => fixed


Comment:

 In [changeset:"33949"]:
 {{{
 #!CommitTicketReference repository="" revision="33949"
 In `Walker_CategoryDropdown::start_el()`, cast values to strings before
 deciding whether to append 'selected' attribute.

 As of [32484], `wp_dropdown_categories()` uses the `$value_field` value to
 decide whether a given `<option>` should be 'selected'. However,
 `$value_field`
 can refer to a value that is a string, such as a category's slug. This
 causes
 problems when doing a loose comparison (`==`) with the value of the
 'selected'
 parameter, which defaults to `0`, because when doing a loose comparison
 between an integer and a string, PHP will cast the string to an integer.
 This
 creates false matches, resulting in `<option>` elements getting a
 'selected'
 attribute incorrectly.

 We address the issue by casting the comparison values to strings, and then
 using the strict comparison operator `===`.

 Merges [33681] to the 4.3 branch.

 Fixes #33452 for 4.3.1.
 }}}

--
Ticket URL: <https://core.trac.wordpress.org/ticket/33452#comment:7>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list