Make WordPress Core

Ticket #26111: 26111.diff

File 26111.diff, 1.6 KB (added by jtsternberg, 10 years ago)

Pretty simple fix that checks if $l10n argument is callable and call it if so.

  • wp-includes/class.wp-scripts.php

     
    152152         * Localizes only if the script has already been added
    153153         */
    154154        public function localize( $handle, $object_name, $l10n ) {
    155                 if ( $handle === 'jquery' )
     155                if ( $handle === 'jquery' ) {
    156156                        $handle = 'jquery-core';
     157                }
    157158
    158                 if ( is_array($l10n) && isset($l10n['l10n_print_after']) ) { // back compat, preserve the code in 'l10n_print_after' if present
     159                if ( is_callable( $l10n ) ) {
     160                        $l10n = call_user_func( $l10n );
     161                }
     162
     163                if ( is_array( $l10n ) && isset( $l10n['l10n_print_after'] ) ) { // back compat, preserve the code in 'l10n_print_after' if present
    159164                        $after = $l10n['l10n_print_after'];
    160                         unset($l10n['l10n_print_after']);
     165                        unset( $l10n['l10n_print_after'] );
    161166                }
    162167
    163168                foreach ( (array) $l10n as $key => $value ) {
    164                         if ( !is_scalar($value) )
     169                        if ( ! is_scalar( $value ) ) {
    165170                                continue;
     171                        }
    166172
    167                         $l10n[$key] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8');
     173                        $l10n[ $key ] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8');
    168174                }
    169175
    170                 $script = "var $object_name = " . json_encode($l10n) . ';';
     176                $script = "var $object_name = " . json_encode( $l10n ) . ';';
    171177
    172                 if ( !empty($after) )
     178                if ( ! empty( $after ) ) {
    173179                        $script .= "\n$after;";
     180                }
    174181
    175182                $data = $this->get_data( $handle, 'data' );
    176183
    177                 if ( !empty( $data ) )
     184                if ( ! empty( $data ) ) {
    178185                        $script = "$data\n$script";
     186                }
    179187
    180188                return $this->add_data( $handle, 'data', $script );
    181189        }