WordPress.org

Make WordPress Core

Opened 22 months ago

Last modified 18 months ago

#21249 new defect (bug)

WP_List_Table::single_row_columns() needs to do an exact comparison

Reported by: Viper007Bond Owned by:
Milestone: Future Release Priority: lowest
Severity: trivial Version:
Component: Administration Keywords: has-patch
Focuses: Cc:

Description

If for whatever reason you pass a column ID of 0 when dealing with a list table, WordPress thinks it's a checkbox column because of the loose comparison, i.e. == instead of ===.

Since I don't see why passing a number instead of a string shouldn'r be allowed, attached is a patch.

Attachments (1)

21249.patch (480 bytes) - added by Viper007Bond 22 months ago.

Download all attachments as: .zip

Change History (7)

Viper007Bond22 months ago

comment:1 scribu20 months ago

  • Keywords reporter-feedback added

Are you saying 'cb' == 0 evals to true?

comment:2 scribu20 months ago

  • Keywords reporter-feedback removed

D'oh. Yes, it does. Seems PHP's type coercion is at least as treacherous as the one in JavaScript.

comment:3 kurtpayne19 months ago

  • Cc kurtpayne added
  • Keywords needs-testing removed
  • Milestone changed from Awaiting Review to 3.4.3

I can reproduce the original bug. The patch looks good.

comment:4 nacin18 months ago

  • Milestone changed from 3.4.3 to 3.5

Would if ( 'cb' == $column_key ) in print_column_headers() also be affected?

comment:5 Viper007Bond18 months ago

Seems like it would be affected, yes.

I can't test though because I don't remember exactly what I was working on at the time other than maybe I was creating columns programically using a numeric array.

comment:6 nacin18 months ago

  • Milestone changed from 3.5 to Future Release

I'm going to go with a column ID of "0" being invalid and punt this until we are able to fix it everywhere.

Note: See TracTickets for help on using tickets.