WordPress.org

Make WordPress Core

Ticket #24197: 24197-2.patch

File 24197-2.patch, 1.9 KB (added by azaozz, 5 years ago)
  • wp-includes/class.wp-scripts.php

     
    133133         * Localizes only if the script has already been added
    134134         */
    135135        function localize( $handle, $object_name, $l10n ) {
    136                 if ( is_array($l10n) && isset($l10n['l10n_print_after']) ) { // back compat, preserve the code in 'l10n_print_after' if present
     136                if ( is_array( $l10n ) && isset( $l10n['l10n_print_after'] ) ) { // back compat, preserve the code in 'l10n_print_after' if present
    137137                        $after = $l10n['l10n_print_after'];
    138                         unset($l10n['l10n_print_after']);
     138                        unset( $l10n['l10n_print_after'] );
    139139                }
    140140
    141141                foreach ( (array) $l10n as $key => $value ) {
    142                         if ( !is_scalar($value) )
     142                        if ( ! is_scalar( $value ) )
    143143                                continue;
    144144
    145                         $l10n[$key] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8');
     145                        $l10n[$key] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8' );
    146146                }
    147147
    148                 $script = "var $object_name = " . json_encode($l10n) . ';';
     148                $script = "var $object_name = " . json_encode( $l10n ) . ';';
    149149
    150                 if ( !empty($after) )
     150                if ( ! empty( $after ) )
    151151                        $script .= "\n$after;";
    152152
    153153                $data = $this->get_data( $handle, 'data' );
    154154
    155                 if ( !empty( $data ) )
     155                if ( ! empty( $data ) )
    156156                        $script = "$data\n$script";
    157157
     158                // For group/alias handles, add (localization) data to their first dependency
     159                if ( isset( $this->registered[$handle] ) && ! $this->registered[$handle]->src && ! empty( $this->registered[$handle]->deps ) ) {
     160                        $first_dep = $this->registered[$handle]->deps[0];
     161                        // The first dependency data has priority over the handle data (printed after)
     162                        if ( $first_dep_data = $this->get_data( $first_dep, 'data' ) )
     163                                $script .= "\n$first_dep_data";
     164
     165                        return $this->add_data( $first_dep, 'data', $script );
     166                }
     167
    158168                return $this->add_data( $handle, 'data', $script );
    159169        }
    160170