WordPress Version: 5.7
/**
* Determine if global tables should be upgraded.
*
* This function performs a series of checks to ensure the environment allows
* for the safe upgrading of global WordPress database tables. It is necessary
* because global tables will commonly grow to millions of rows on large
* installations, and the ability to control their upgrade routines can be
* critical to the operation of large networks.
*
* In a future iteration, this function may use `wp_is_large_network()` to more-
* intelligently prevent global table upgrades. Until then, we make sure
* WordPress is on the main site of the main network, to avoid running queries
* more than once in multi-site or multi-network environments.
*
* @since 4.3.0
*
* @return bool Whether to run the upgrade routines on global tables.
*/
function wp_should_upgrade_global_tables()
{
// Return false early if explicitly not upgrading.
if (defined('DO_NOT_UPGRADE_GLOBAL_TABLES')) {
return false;
}
// Assume global tables should be upgraded.
$should_upgrade = true;
// Set to false if not on main network (does not matter if not multi-network).
if (!is_main_network()) {
$should_upgrade = false;
}
// Set to false if not on main site of current network (does not matter if not multi-site).
if (!is_main_site()) {
$should_upgrade = false;
}
/**
* Filters if upgrade routines should be run on global tables.
*
* @since 4.3.0
*
* @param bool $should_upgrade Whether to run the upgrade routines on global tables.
*/
return apply_filters('wp_should_upgrade_global_tables', $should_upgrade);
}