WordPress.org

Make WordPress Core

Ticket #25247: 25247_scripts.diff

File 25247_scripts.diff, 2.2 KB (added by gitlost, 5 years ago)

Optional cleanup patch to WP_Scripts.

  • 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;
     
    8887                        return false;
    8988
    9089                if ( 0 === $group && $this->groups[$handle] > 0 ) {
    91                         $this->in_footer[] = $handle;
    9290                        return false;
    9391                }
    9492
    95                 if ( false === $group && in_array($handle, $this->in_footer, true) )
    96                         $this->in_footer = array_diff( $this->in_footer, (array) $handle );
    97 
    9893                if ( null === $this->registered[$handle]->ver )
    9994                        $ver = '';
    10095                else
     
    163158        }
    164159
    165160        /**
     161         * Register a script.
     162         *
     163         * Registers the script if no script of that name already exists.
     164         *
     165         * @access public
     166         * @since 4.2 ??What should this be??
     167         *
     168         * @param string $handle Unique script name.
     169         * @param string $src    The script url.
     170         * @param array  $deps   Optional. An array of script handle strings on which this script depends.
     171         * @param string $ver    Optional. Version (used for cache busting).
     172         * @param mixed  $args   Optional. Custom property of the script. NOT the class property $args. Examples: 1 for in_footer.
     173         * @return bool True on success, false on failure.
     174         */
     175        public function add( $handle, $src, $deps = array(), $ver = false, $args = null ) {
     176                $in_footer = ( $args === 1 );
     177
     178                $result = parent::add( $handle, $src, $deps, $ver, $in_footer ? null : $args );
     179
     180                if ( $in_footer && $result ) {
     181                        $this->add_data( $handle, 'group', 1 );
     182                }
     183
     184                return $result;
     185        }
     186
     187        /**
    166188         * Localizes a script
    167189         *
    168190         * Localizes only if the script has already been added
     
    198220
    199221        public function set_group( $handle, $recursion, $group = false ) {
    200222
    201                 if ( $this->registered[$handle]->args === 1 )
    202                         $grp = 1;
    203                 else
    204                         $grp = (int) $this->get_data( $handle, 'group' );
     223                $grp = (int) $this->get_data( $handle, 'group' );
    205224
    206225                if ( false !== $group && $grp > $group )
    207226                        $grp = $group;