WordPress.org

Make WordPress Core

Ticket #25247: 25247_scripts5.diff

File 25247_scripts5.diff, 2.3 KB (added by gitlost, 3 years ago)

Refreshed to run against trunk with no "hunk succeeded" messages.

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

     
    2020        public $base_url; // Full URL with trailing slash
    2121        public $content_url;
    2222        public $default_version;
    23         public $in_footer = array();
    2423        public $concat = '';
    2524        public $concat_version = '';
    2625        public $do_concat = false;
     
    117116                        return false;
    118117
    119118                if ( 0 === $group && $this->groups[$handle] > 0 ) {
    120                         $this->in_footer[] = $handle;
    121119                        return false;
    122120                }
    123121
    124                 if ( false === $group && in_array($handle, $this->in_footer, true) )
    125                         $this->in_footer = array_diff( $this->in_footer, (array) $handle );
    126 
    127122                $obj = $this->registered[$handle];
    128123
    129124                if ( null === $obj->ver ) {
     
    218213        }
    219214
    220215        /**
     216         * Register a script.
     217         *
     218         * Registers the script if no script of that name already exists.
     219         *
     220         * @access public
     221         * @since 4.5
     222         *
     223         * @param string $handle Unique script name.
     224         * @param string $src    The script url.
     225         * @param array  $deps   Optional. An array of script handle strings on which this script depends.
     226         * @param string $ver    Optional. Version (used for cache busting).
     227         * @param mixed  $args   Optional. Custom property of the script. NOT the class property $args. Examples: 1 for in_footer.
     228         * @return bool True on success, false on failure.
     229         */
     230        public function add( $handle, $src, $deps = array(), $ver = false, $args = null ) {
     231                $in_footer = ( $args === 1 );
     232
     233                $result = parent::add( $handle, $src, $deps, $ver, $in_footer ? null : $args );
     234
     235                if ( $in_footer && $result ) {
     236                        $this->add_data( $handle, 'group', 1 );
     237                }
     238
     239                return $result;
     240        }
     241
     242        /**
    221243         * Localizes a script, only if the script has already been added
    222244         *
    223245         * @param string $handle
     
    261283         * @return bool Not already in the group or a lower group
    262284         */
    263285        public function set_group( $handle, $recursion, $group = false ) {
    264                 if ( isset( $this->registered[$handle]->args ) && $this->registered[$handle]->args === 1 )
    265                         $grp = 1;
    266                 else
    267                         $grp = (int) $this->get_data( $handle, 'group' );
     286                $grp = (int) $this->get_data( $handle, 'group' );
    268287
    269288                if ( false !== $group && $grp > $group )
    270289                        $grp = $group;