- Root cause: two prod sites share one Memcached, no WP_CACHE_KEY_SALT
→ cache keys collide → data mixes between sites
- Primary fix: WP_CACHE_KEY_SALT defined via DB_NAME in wp-config.php
(manual on each prod, file is in .gitignore)
- MU-plugin restored: auto-detect backend, versioned keys, auto-invalidation
- Added re-salt fallback via salt_keys(DB_NAME) on muplugins_loaded
- Removed duplicate admin_notice hooks
- 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
- Использует DB_NAME как соль для ключей кеша
- Предотвращает коллизию когда schelkovo и pushkino
используют один Memcached/Redis на сервере
- Без соли siteurl/home из кеша одного сайта читаются другим
- dekart_try_install_memcached_dropin() removed — no more auto-copy
on plugins_loaded (causes PHP errors if memcached server not running)
- Admin notice shows: 'Install manually' when server is reachable,
'Start Memcached server' when extension installed but no connect,
'Install PHP extension' when missing
- Plugin action link shows 'install manually' instead of 'Activate'
- WP-CLI: wp dekart cache-memcached still works for manual install
- dekart_try_install_memcached_dropin(): auto-copy object-cache.php
from memcached plugin to wp-content/ on plugins_loaded
- Remove 'Activate' link for memcached plugin (prevents fatal error)
- Admin notice with instructions when PHP extension is missing
- WP-CLI command: wp dekart cache-memcached