[wp-trac] [WordPress Trac] #25280: wp_localize_script unexpectedly convert numbers to strings

WordPress Trac noreply at wordpress.org
Wed Sep 11 21:55:33 UTC 2013

#25280: wp_localize_script unexpectedly convert numbers to strings
 Reporter:  adamsilverstein  |       Owner:
     Type:  defect (bug)     |      Status:  new
 Priority:  normal           |   Milestone:  Awaiting Review
Component:  I18N             |     Version:  trunk
 Severity:  normal           |  Resolution:
 Keywords:  has-patch close  |

Comment (by adamsilverstein):

 Replying to [comment:2 c3mdigital]:
 > Also to note the way JSON_NUMERIC_CHECK handles booleans.
 > `wp_localize_script( 'testing', 'TESTING', array( 'false' => false,
 'true' => true, 'integer' => 234 ) );`
 > Before patch:
 > `var TESTING = {"false":"","true":"1","integer":"234"};`
 > after patch:
 > `var TESTING = {"false":"","true":1,"integer":234};`

 interesting points, thanks for the feedback! the boolean evaluation in JS
 won't change, right? "1" and 1 are both truthy.

 the patch does not rely on PHP 5.3; instead it improves the behavior of if
 5.3 is available. in 5.2 nothing changes.

 agree wp_localize_script is not intended  for this purpose, but in
 practice thats how its used- even internally by core. if we aren't going
 to try to fix the function, how about adding a new function for passing
 non-string values from php to js - providing a standard method is better
 than leaving it up to developers in my opinion.

Ticket URL: <http://core.trac.wordpress.org/ticket/25280#comment:3>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software

More information about the wp-trac mailing list