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

WordPress Trac noreply at wordpress.org
Tue Aug 5 09:39:55 UTC 2014


#25280: wp_localize_script unexpectedly converts numbers to strings
----------------------------------------------+----------------------------
 Reporter:  adamsilverstein                   |       Owner:
     Type:  enhancement                       |      Status:  new
 Priority:  normal                            |   Milestone:  Future
Component:  I18N                              |  Release
 Severity:  normal                            |     Version:  3.2
 Keywords:  has-patch dev-feedback 4.1-early  |  Resolution:
                                              |     Focuses:  javascript
----------------------------------------------+----------------------------

Comment (by Fab1en):

 I think this fix is good. Before this fix, you would get the same behavior
 by wrapping your variables in another level of array (because the variable
 will fail the `is_scalar` test) :

 {{{
 wp_enqueue_script( 'localize_test', get_template_directory_uri() .
 '/localize_script.js', array(), '1.0.0', true );
         $array_to_localize = array(
                 'a_string'  => __( 'Some String' ),
                 'a_number'  => 10,
                 't_boolean' => true,
                 'f_boolean' => false,
                 );
 wp_localize_script( 'main', 'localized_variable', array('fixed' =>
 $array_to_localize) );
 }}}

 So the fix will add consistency.

 JavaScript provides [http://bonsaiden.github.io/JavaScript-
 Garden/#types.casting type coercion] depending on the context, so plugin
 breakage risks are really low. To break, a plugin would have to
 1. Expect a number as a string, but declare it as a number in PHP
 2. Use it in a context where it could be interpreted as a number without
 any check. (for example, using `'The value is ' +
 localized_variable.a_number` would automatically cast the variable to a
 string).

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


More information about the wp-trac mailing list