WP_Dependencies: pass NULL to disable script and style version query strings, props scribu amattie, fixes #11315

git-svn-id: http://svn.automattic.com/wordpress/trunk@12558 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
azaozz 2009-12-28 00:48:20 +00:00
parent 16e175cc0f
commit 7b40c7a03f
5 changed files with 29 additions and 15 deletions

View File

@ -232,8 +232,6 @@ class _WP_Dependency {
@list($this->handle, $this->src, $this->deps, $this->ver, $this->args) = func_get_args(); @list($this->handle, $this->src, $this->deps, $this->ver, $this->args) = func_get_args();
if ( !is_array($this->deps) ) if ( !is_array($this->deps) )
$this->deps = array(); $this->deps = array();
if ( !$this->ver )
$this->ver = false;
} }
function add_data( $name, $data ) { function add_data( $name, $data ) {

View File

@ -90,9 +90,13 @@ class WP_Scripts extends WP_Dependencies {
if ( false === $group && in_array($handle, $this->in_footer, true) ) if ( false === $group && in_array($handle, $this->in_footer, true) )
$this->in_footer = array_diff( $this->in_footer, (array) $handle ); $this->in_footer = array_diff( $this->in_footer, (array) $handle );
if ( null === $this->registered[$handle]->ver )
$ver = '';
else
$ver = $this->registered[$handle]->ver ? $this->registered[$handle]->ver : $this->default_version; $ver = $this->registered[$handle]->ver ? $this->registered[$handle]->ver : $this->default_version;
if ( isset($this->args[$handle]) ) if ( isset($this->args[$handle]) )
$ver .= '&' . $this->args[$handle]; $ver = $ver ? $ver . '&' . $this->args[$handle] : '?' . $this->args[$handle];
$src = $this->registered[$handle]->src; $src = $this->registered[$handle]->src;
@ -114,6 +118,7 @@ class WP_Scripts extends WP_Dependencies {
$src = $this->base_url . $src; $src = $this->base_url . $src;
} }
if ( !empty($ver) )
$src = add_query_arg('ver', $ver, $src); $src = add_query_arg('ver', $ver, $src);
$src = esc_url(apply_filters( 'script_loader_src', $src, $handle )); $src = esc_url(apply_filters( 'script_loader_src', $src, $handle ));

View File

@ -35,9 +35,13 @@ class WP_Styles extends WP_Dependencies {
if ( !parent::do_item($handle) ) if ( !parent::do_item($handle) )
return false; return false;
if ( null === $this->registered[$handle]->ver )
$ver = '';
else
$ver = $this->registered[$handle]->ver ? $this->registered[$handle]->ver : $this->default_version; $ver = $this->registered[$handle]->ver ? $this->registered[$handle]->ver : $this->default_version;
if ( isset($this->args[$handle]) ) if ( isset($this->args[$handle]) )
$ver .= '&' . $this->args[$handle]; $ver = $ver ? $ver . '&' . $this->args[$handle] : '?' . $this->args[$handle];
if ( $this->do_concat ) { if ( $this->do_concat ) {
if ( $this->in_default_dir($this->registered[$handle]->src) && !isset($this->registered[$handle]->extra['conditional']) && !isset($this->registered[$handle]->extra['alt']) ) { if ( $this->in_default_dir($this->registered[$handle]->src) && !isset($this->registered[$handle]->extra['conditional']) && !isset($this->registered[$handle]->extra['alt']) ) {
@ -100,6 +104,7 @@ class WP_Styles extends WP_Dependencies {
$src = $this->base_url . $src; $src = $this->base_url . $src;
} }
if ( !empty($ver) )
$src = add_query_arg('ver', $ver, $src); $src = add_query_arg('ver', $ver, $src);
$src = apply_filters( 'style_loader_src', $src, $handle ); $src = apply_filters( 'style_loader_src', $src, $handle );
return esc_url( $src ); return esc_url( $src );

View File

@ -38,7 +38,12 @@ function wp_print_scripts( $handles = false ) {
* Register new JavaScript file. * Register new JavaScript file.
* *
* @since r16 * @since r16
* @see WP_Dependencies::add() For parameter information. * @param string $handle Script name
* @param string $src Script url
* @param array $deps (optional) Array of script names on which this script depends
* @param string|bool $ver (optional) Script version (used for cache busting), set to NULL to disable
* @param bool (optional) Wether to enqueue the script before </head> or before </body>
* @return null
*/ */
function wp_register_script( $handle, $src, $deps = array(), $ver = false, $in_footer = false ) { function wp_register_script( $handle, $src, $deps = array(), $ver = false, $in_footer = false ) {
global $wp_scripts; global $wp_scripts;
@ -56,7 +61,7 @@ function wp_register_script( $handle, $src, $deps = array(), $ver = false, $in_f
* Localizes only if script has already been added. * Localizes only if script has already been added.
* *
* @since r16 * @since r16
* @see WP_Script::localize() * @see WP_Scripts::localize()
*/ */
function wp_localize_script( $handle, $object_name, $l10n ) { function wp_localize_script( $handle, $object_name, $l10n ) {
global $wp_scripts; global $wp_scripts;
@ -86,7 +91,7 @@ function wp_deregister_script( $handle ) {
* Registers the script if src provided (does NOT overwrite) and enqueues. * Registers the script if src provided (does NOT overwrite) and enqueues.
* *
* @since r16 * @since r16
* @see WP_Script::add(), WP_Script::enqueue() * @see wp_register_script() For parameter information.
*/ */
function wp_enqueue_script( $handle, $src = false, $deps = array(), $ver = false, $in_footer = false ) { function wp_enqueue_script( $handle, $src = false, $deps = array(), $ver = false, $in_footer = false ) {
global $wp_scripts; global $wp_scripts;

View File

@ -45,9 +45,8 @@ function wp_print_styles( $handles = false ) {
* @param string|bool $src Path to the stylesheet from the root directory of WordPress. Example: '/css/mystyle.css'. * @param string|bool $src Path to the stylesheet from the root directory of WordPress. Example: '/css/mystyle.css'.
* @param array $deps Array of handles of any stylesheet that this stylesheet depends on. * @param array $deps Array of handles of any stylesheet that this stylesheet depends on.
* (Stylesheets that must be loaded before this stylesheet.) Pass an empty array if there are no dependencies. * (Stylesheets that must be loaded before this stylesheet.) Pass an empty array if there are no dependencies.
* @param string|bool $ver String specifying the stylesheet version number, if it has one. This parameter * @param string|bool $ver String specifying the stylesheet version number. Set to NULL to disable.
* is used to ensure that the correct version is sent to the client regardless of caching, and so should be included * Used to ensure that the correct version is sent to the client regardless of caching.
* if a version number is available and makes sense for the stylesheet.
* @param string $media The media for which this stylesheet has been defined. * @param string $media The media for which this stylesheet has been defined.
*/ */
function wp_register_style( $handle, $src, $deps = array(), $ver = false, $media = 'all' ) { function wp_register_style( $handle, $src, $deps = array(), $ver = false, $media = 'all' ) {
@ -78,6 +77,8 @@ function wp_deregister_style( $handle ) {
/** /**
* Enqueue a CSS style file. * Enqueue a CSS style file.
* *
* Registers the style if src provided (does NOT overwrite) and enqueues.
*
* @since r79 * @since r79
* @see WP_Styles::add(), WP_Styles::enqueue() * @see WP_Styles::add(), WP_Styles::enqueue()
* @global object $wp_styles The WP_Styles object for printing styles. * @global object $wp_styles The WP_Styles object for printing styles.