Created
May 12, 2022 15:10
-
-
Save antonlukin/56f04f17f73732eadba3008c83ad6218 to your computer and use it in GitHub Desktop.
Fix a race condition in alloptions caching
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Fix a race condition in alloptions caching | |
* | |
* @link https://core.trac.wordpress.org/ticket/31245 | |
* @link https://github.com/Automattic/vip-go-mu-plugins-built/blob/master/misc.php#L75 | |
*/ | |
function _knife_maybe_clear_alloptions_cache( $option ) { | |
if ( ! wp_installing() ) { | |
$alloptions = wp_load_alloptions(); //alloptions should be cached at this point | |
if ( isset( $alloptions[ $option ] ) ) { //only if option is among alloptions | |
wp_cache_delete( 'alloptions', 'options' ); | |
} | |
} | |
} | |
add_action( 'added_option', '_knife_maybe_clear_alloptions_cache' ); | |
add_action( 'updated_option', '_knife_maybe_clear_alloptions_cache' ); | |
add_action( 'deleted_option', '_knife_maybe_clear_alloptions_cache' ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment