fix: re-salt Memcached keys after drop-in load to isolate multi-site cache

- WP_CACHE_KEY_SALT defined in MU-plugin is too late:
  object-cache.php (Memcached drop-in) loads before MU-plugins
- Add muplugins_loaded hook: call salt_keys(DB_NAME) directly
  on the initialized Memcached object cache instance
- Each site gets unique key prefix from its database name
- Prevents cross-site cache collision when multiple WP sites
  share one Memcached server
This commit is contained in:
Dekart Deploy Bot 2026-07-17 19:23:56 +00:00
parent 2c84bf3989
commit d247b513d1

View File

@ -29,6 +29,18 @@ if ( ! defined( 'WP_CACHE_KEY_SALT' ) && defined( 'DB_NAME' ) ) {
if ( ! defined( 'WP_REDIS_HOST' ) ) {
define( 'WP_REDIS_HOST', '127.0.0.1' );
}
// Пересолить ключи объектного кеша после загрузки drop-in.
// WP_CACHE_KEY_SALT в MU-плагине — слишком поздно (drop-in грузится раньше).
// Вызываем salt_keys() напрямую на уже инициализированном объекте кеша.
if ( defined( 'DB_NAME' ) ) {
add_action( 'muplugins_loaded', function () {
global $wp_object_cache;
if ( isset( $wp_object_cache ) && method_exists( $wp_object_cache, 'salt_keys' ) ) {
$wp_object_cache->salt_keys( DB_NAME );
}
}, 0 );
}
if ( ! defined( 'WP_REDIS_PORT' ) ) {
define( 'WP_REDIS_PORT', 6379 );
}