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

WordPress Trac noreply at wordpress.org
Fri Aug 21 01:10:36 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:  has-patch needs-testing  |     Focuses:
-------------------------------------+---------------------------
Changes (by boonebgorges):

 * owner:   => boonebgorges
 * status:  new => closed
 * resolution:   => fixed


Comment:

 In [changeset:"33681"]:
 {{{
 #!CommitTicketReference repository="" revision="33681"
 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 `===`.

 Fixes #33452 for trunk.
 }}}

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


More information about the wp-trac mailing list