Add missing doc blocks to `update.php`:
* `wp_version_check()`, `wp_update_plugins()`, and `wp_update_themes()` do not return meaningful responses, and their responses are never handled by core. As such, they shouldn't alternately return `void` or `false`. "Returning" in those functions is just "bailing" * In the same functions, `version.php` doesn't need to load if `WP_INSTALLING` is defined - the function will immediately bail, the values will never be read, and the globals won't be reset. I have unified the approach in all 3 functions. * When returning filtered `$locale`, there is no need to set the variable twice. * In `_maybe_update_core()`, `isset()` can take multiple values to bail before the call to `time()`, if necessary. This is a micro-optimization to prevent PHP from hitting the OS unnecessarily. See #32444. Built from https://develop.svn.wordpress.org/trunk@32635 git-svn-id: http://core.svn.wordpress.org/trunk@32605 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
f1ff34e547
commit
66a9c83284
|
@ -14,18 +14,21 @@
|
|||
* isn't installing.
|
||||
*
|
||||
* @since 2.3.0
|
||||
* @uses $wp_version Used to check against the newest WordPress version.
|
||||
* @global string $wp_version Used to check against the newest WordPress version.
|
||||
* @global wpdb $wpdb
|
||||
* @global string $wp_local_package
|
||||
*
|
||||
* @param array $extra_stats Extra statistics to report to the WordPress.org API.
|
||||
* @param bool $force_check Whether to bypass the transient cache and force a fresh update check. Defaults to false, true if $extra_stats is set.
|
||||
* @return null|false Returns null if update is unsupported. Returns false if check is too soon.
|
||||
* @param bool $force_check Whether to bypass the transient cache and force a fresh update check. Defaults to false, true if $extra_stats is set.
|
||||
*/
|
||||
function wp_version_check( $extra_stats = array(), $force_check = false ) {
|
||||
if ( defined('WP_INSTALLING') )
|
||||
if ( defined( 'WP_INSTALLING' ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
global $wpdb, $wp_local_package;
|
||||
include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version
|
||||
global $wp_version, $wpdb, $wp_local_package;
|
||||
// include an unmodified $wp_version
|
||||
include( ABSPATH . WPINC . '/version.php' );
|
||||
$php_version = phpversion();
|
||||
|
||||
$current = get_site_transient( 'update_core' );
|
||||
|
@ -47,10 +50,10 @@ function wp_version_check( $extra_stats = array(), $force_check = false ) {
|
|||
// Wait 60 seconds between multiple version check requests
|
||||
$timeout = 60;
|
||||
$time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked );
|
||||
if ( ! $force_check && $time_not_changed )
|
||||
return false;
|
||||
if ( ! $force_check && $time_not_changed ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$locale = get_locale();
|
||||
/**
|
||||
* Filter the locale requested for WordPress core translations.
|
||||
*
|
||||
|
@ -58,7 +61,7 @@ function wp_version_check( $extra_stats = array(), $force_check = false ) {
|
|||
*
|
||||
* @param string $locale Current locale.
|
||||
*/
|
||||
$locale = apply_filters( 'core_version_check_locale', $locale );
|
||||
$locale = apply_filters( 'core_version_check_locale', get_locale() );
|
||||
|
||||
// Update last_checked for current to prevent multiple blocking requests if request hangs
|
||||
$current->last_checked = time();
|
||||
|
@ -120,14 +123,16 @@ function wp_version_check( $extra_stats = array(), $force_check = false ) {
|
|||
$response = wp_remote_post( $http_url, $options );
|
||||
}
|
||||
|
||||
if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) )
|
||||
return false;
|
||||
if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$body = trim( wp_remote_retrieve_body( $response ) );
|
||||
$body = json_decode( $body, true );
|
||||
|
||||
if ( ! is_array( $body ) || ! isset( $body['offers'] ) )
|
||||
return false;
|
||||
if ( ! is_array( $body ) || ! isset( $body['offers'] ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$offers = $body['offers'];
|
||||
|
||||
|
@ -177,16 +182,18 @@ function wp_version_check( $extra_stats = array(), $force_check = false ) {
|
|||
* api.wordpress.org. Will only check if WordPress isn't installing.
|
||||
*
|
||||
* @since 2.3.0
|
||||
* @uses $wp_version Used to notify the WordPress version.
|
||||
* @global string $wp_version Used to notify the WordPress version.
|
||||
*
|
||||
* @param array $extra_stats Extra statistics to report to the WordPress.org API.
|
||||
* @return false|null Returns null if update is unsupported. Returns false if check is too soon.
|
||||
*/
|
||||
function wp_update_plugins( $extra_stats = array() ) {
|
||||
include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version
|
||||
if ( defined( 'WP_INSTALLING' ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( defined('WP_INSTALLING') )
|
||||
return false;
|
||||
global $wp_version;
|
||||
// include an unmodified $wp_version
|
||||
include( ABSPATH . WPINC . '/version.php' );
|
||||
|
||||
// If running blog-side, bail unless we've not checked in the last 12 hours
|
||||
if ( !function_exists( 'get_plugins' ) )
|
||||
|
@ -244,8 +251,9 @@ function wp_update_plugins( $extra_stats = array() ) {
|
|||
}
|
||||
|
||||
// Bail if we've checked recently and if nothing has changed
|
||||
if ( ! $plugin_changed )
|
||||
return false;
|
||||
if ( ! $plugin_changed ) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Update last_checked for current to prevent multiple blocking requests if request hangs
|
||||
|
@ -254,7 +262,6 @@ function wp_update_plugins( $extra_stats = array() ) {
|
|||
|
||||
$to_send = compact( 'plugins', 'active' );
|
||||
|
||||
$locales = array( get_locale() );
|
||||
/**
|
||||
* Filter the locales requested for plugin translations.
|
||||
*
|
||||
|
@ -262,7 +269,7 @@ function wp_update_plugins( $extra_stats = array() ) {
|
|||
*
|
||||
* @param array $locales Plugin locale. Default is current locale of the site.
|
||||
*/
|
||||
$locales = apply_filters( 'plugins_update_check_locales', $locales );
|
||||
$locales = apply_filters( 'plugins_update_check_locales', array( get_locale() ) );
|
||||
|
||||
if ( defined( 'DOING_CRON' ) && DOING_CRON ) {
|
||||
$timeout = 30;
|
||||
|
@ -296,8 +303,9 @@ function wp_update_plugins( $extra_stats = array() ) {
|
|||
$raw_response = wp_remote_post( $http_url, $options );
|
||||
}
|
||||
|
||||
if ( is_wp_error( $raw_response ) || 200 != wp_remote_retrieve_response_code( $raw_response ) )
|
||||
return false;
|
||||
if ( is_wp_error( $raw_response ) || 200 != wp_remote_retrieve_response_code( $raw_response ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$response = json_decode( wp_remote_retrieve_body( $raw_response ), true );
|
||||
foreach ( $response['plugins'] as &$plugin ) {
|
||||
|
@ -334,13 +342,14 @@ function wp_update_plugins( $extra_stats = array() ) {
|
|||
* @uses $wp_version Used to notify the WordPress version.
|
||||
*
|
||||
* @param array $extra_stats Extra statistics to report to the WordPress.org API.
|
||||
* @return false|null Returns null if update is unsupported. Returns false if check is too soon.
|
||||
*/
|
||||
function wp_update_themes( $extra_stats = array() ) {
|
||||
include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version
|
||||
|
||||
if ( defined( 'WP_INSTALLING' ) )
|
||||
return false;
|
||||
if ( defined( 'WP_INSTALLING' ) ) {
|
||||
return;
|
||||
}
|
||||
global $wp_version;
|
||||
// include an unmodified $wp_version
|
||||
include( ABSPATH . WPINC . '/version.php' );
|
||||
|
||||
$installed_themes = wp_get_themes();
|
||||
$translations = wp_get_installed_translations( 'themes' );
|
||||
|
@ -407,8 +416,9 @@ function wp_update_themes( $extra_stats = array() ) {
|
|||
}
|
||||
|
||||
// Bail if we've checked recently and if nothing has changed
|
||||
if ( ! $theme_changed )
|
||||
return false;
|
||||
if ( ! $theme_changed ) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Update last_checked for current to prevent multiple blocking requests if request hangs
|
||||
|
@ -417,7 +427,6 @@ function wp_update_themes( $extra_stats = array() ) {
|
|||
|
||||
$request['themes'] = $themes;
|
||||
|
||||
$locales = array( get_locale() );
|
||||
/**
|
||||
* Filter the locales requested for theme translations.
|
||||
*
|
||||
|
@ -425,7 +434,7 @@ function wp_update_themes( $extra_stats = array() ) {
|
|||
*
|
||||
* @param array $locales Theme locale. Default is current locale of the site.
|
||||
*/
|
||||
$locales = apply_filters( 'themes_update_check_locales', $locales );
|
||||
$locales = apply_filters( 'themes_update_check_locales', array( get_locale() ) );
|
||||
|
||||
if ( defined( 'DOING_CRON' ) && DOING_CRON ) {
|
||||
$timeout = 30;
|
||||
|
@ -458,8 +467,9 @@ function wp_update_themes( $extra_stats = array() ) {
|
|||
$raw_response = wp_remote_post( $http_url, $options );
|
||||
}
|
||||
|
||||
if ( is_wp_error( $raw_response ) || 200 != wp_remote_retrieve_response_code( $raw_response ) )
|
||||
return false;
|
||||
if ( is_wp_error( $raw_response ) || 200 != wp_remote_retrieve_response_code( $raw_response ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$new_update = new stdClass;
|
||||
$new_update->last_checked = time();
|
||||
|
@ -492,12 +502,13 @@ function wp_maybe_auto_update() {
|
|||
* Retrieves a list of all language updates available.
|
||||
*
|
||||
* @since 3.7.0
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
function wp_get_translation_updates() {
|
||||
$updates = array();
|
||||
$transients = array( 'update_core' => 'core', 'update_plugins' => 'plugin', 'update_themes' => 'theme' );
|
||||
foreach ( $transients as $transient => $type ) {
|
||||
|
||||
$transient = get_site_transient( $transient );
|
||||
if ( empty( $transient->translations ) )
|
||||
continue;
|
||||
|
@ -506,7 +517,6 @@ function wp_get_translation_updates() {
|
|||
$updates[] = (object) $translation;
|
||||
}
|
||||
}
|
||||
|
||||
return $updates;
|
||||
}
|
||||
|
||||
|
@ -571,17 +581,20 @@ function wp_get_update_data() {
|
|||
return apply_filters( 'wp_get_update_data', $update_data, $titles );
|
||||
}
|
||||
|
||||
/**
|
||||
* @global string $wp_version
|
||||
*/
|
||||
function _maybe_update_core() {
|
||||
global $wp_version;
|
||||
include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version
|
||||
|
||||
$current = get_site_transient( 'update_core' );
|
||||
|
||||
if ( isset( $current->last_checked ) &&
|
||||
if ( isset( $current->last_checked, $current->version_checked ) &&
|
||||
12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) &&
|
||||
isset( $current->version_checked ) &&
|
||||
$current->version_checked == $wp_version )
|
||||
$current->version_checked == $wp_version ) {
|
||||
return;
|
||||
|
||||
}
|
||||
wp_version_check();
|
||||
}
|
||||
/**
|
||||
|
@ -614,7 +627,6 @@ function _maybe_update_themes() {
|
|||
$current = get_site_transient( 'update_themes' );
|
||||
if ( isset( $current->last_checked ) && 12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) )
|
||||
return;
|
||||
|
||||
wp_update_themes();
|
||||
}
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
*
|
||||
* @global string $wp_version
|
||||
*/
|
||||
$wp_version = '4.3-alpha-32634';
|
||||
$wp_version = '4.3-alpha-32635';
|
||||
|
||||
/**
|
||||
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
||||
|
|
Loading…
Reference in New Issue