Options, Meta APIs: Change the option can_compress_scripts to be autoloaded.

Ensure that the option `can_compress_scripts` is autoloaded on single sites, as this option is used in all requests. This change saves one database query per page request. 

Props RavanH, spacedmonkey, costdev, azaozz, flixos90.
Fixes #55270.

git-svn-id: https://develop.svn.wordpress.org/trunk@55854 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Jonny Harris 2023-05-24 17:33:26 +00:00
parent d51ee6ce09
commit 52f05444ba
3 changed files with 46 additions and 4 deletions

View File

@ -188,7 +188,12 @@ function wp_ajax_wp_compression_test() {
}
if ( ini_get( 'zlib.output_compression' ) || 'ob_gzhandler' === ini_get( 'output_handler' ) ) {
update_site_option( 'can_compress_scripts', 0 );
// Use `update_option()` on single site to mark the option for autoloading.
if ( is_multisite() ) {
update_site_option( 'can_compress_scripts', 0 );
} else {
update_option( 'can_compress_scripts', 0, 'yes' );
}
wp_die( 0 );
}
@ -222,10 +227,20 @@ function wp_ajax_wp_compression_test() {
wp_die();
} elseif ( 'no' === $_GET['test'] ) {
check_ajax_referer( 'update_can_compress_scripts' );
update_site_option( 'can_compress_scripts', 0 );
// Use `update_option()` on single site to mark the option for autoloading.
if ( is_multisite() ) {
update_site_option( 'can_compress_scripts', 0 );
} else {
update_option( 'can_compress_scripts', 0, 'yes' );
}
} elseif ( 'yes' === $_GET['test'] ) {
check_ajax_referer( 'update_can_compress_scripts' );
update_site_option( 'can_compress_scripts', 1 );
// Use `update_option()` on single site to mark the option for autoloading.
if ( is_multisite() ) {
update_site_option( 'can_compress_scripts', 1 );
} else {
update_option( 'can_compress_scripts', 1, 'yes' );
}
}
}

View File

@ -832,6 +832,10 @@ function upgrade_all() {
upgrade_600();
}
if ( $wp_current_db_version < 55853 ) {
upgrade_630();
}
maybe_disable_link_manager();
maybe_disable_automattic_widgets();
@ -2293,6 +2297,29 @@ function upgrade_600() {
}
}
/**
* Executes changes made in WordPress 6.3.0.
*
* @ignore
* @since 6.3.0
*
* @global int $wp_current_db_version The old (current) database version.
*/
function upgrade_630() {
global $wp_current_db_version;
if ( $wp_current_db_version < 55853 ) {
if ( ! is_multisite() ) {
// Replace non-autoload option can_compress_scripts with autoload option, see #55270
$can_compress_scripts = get_option( 'can_compress_scripts', false );
if ( false !== $can_compress_scripts ) {
delete_option( 'can_compress_scripts' );
add_option( 'can_compress_scripts', $can_compress_scripts, 'yes' );
}
}
}
}
/**
* Executes network-level upgrade routines.
*

View File

@ -23,7 +23,7 @@ $wp_version = '6.3-alpha-55505-src';
*
* @global int $wp_db_version
*/
$wp_db_version = 53496;
$wp_db_version = 55853;
/**
* Holds the TinyMCE version.