From ddad27c800f935c36537a9f799e28ef5001e20ee Mon Sep 17 00:00:00 2001 From: Tetrakern <26898880+Tetrakern@users.noreply.github.com> Date: Sat, 12 Oct 2024 22:26:44 +0200 Subject: [PATCH] Spoke to soon wp_cache_flush() is not reliable for external object caches. --- includes/functions/_customizer-settings.php | 5 +++-- includes/functions/_service-caching.php | 14 ++++++++++++++ includes/functions/_setup-theme.php | 2 +- includes/functions/settings/_settings_actions.php | 4 +++- 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/includes/functions/_customizer-settings.php b/includes/functions/_customizer-settings.php index 612df158..8cda4a05 100644 --- a/includes/functions/_customizer-settings.php +++ b/includes/functions/_customizer-settings.php @@ -13,8 +13,9 @@ */ function fictioneer_watch_for_customizer_updates() { - // Transients (fast) - fictioneer_delete_transients_like( 'fictioneer_', true ); + // Transients + fictioneer_delete_layout_transients(); + fictioneer_delete_transients_like( 'fictioneer_', true ); // Fast // Object cache wp_cache_flush(); diff --git a/includes/functions/_service-caching.php b/includes/functions/_service-caching.php index 47fbe65f..72dc4ecf 100644 --- a/includes/functions/_service-caching.php +++ b/includes/functions/_service-caching.php @@ -795,6 +795,20 @@ if ( FICTIONEER_ENABLE_STORY_DATA_META_CACHE ) { // PURGE CACHE TRANSIENTS // ============================================================================= +/** + * Purge layout-related Transients + * + * @since 5.25.0 + */ + +function fictioneer_delete_layout_transients() { + fictioneer_purge_nav_menu_transients(); + fictioneer_purge_story_card_cache(); + fictioneer_delete_transients_like( 'fictioneer_shortcode' ); + fictioneer_delete_transients_like( 'fictioneer_taxonomy_submenu_' ); + delete_transient( 'fictioneer_dynamic_scripts_version' ); +} + /** * Purge Transients used for caching when posts are updated * diff --git a/includes/functions/_setup-theme.php b/includes/functions/_setup-theme.php index 78d01b01..59f6bbbb 100644 --- a/includes/functions/_setup-theme.php +++ b/includes/functions/_setup-theme.php @@ -237,7 +237,7 @@ add_action( 'after_setup_theme', 'fictioneer_theme_setup' ); */ function fictioneer_purge_caches_after_update() { - // Transients (fast) + // Transients (fast, assuming this also causes a purge of external object caches) fictioneer_delete_transients_like( 'fictioneer_', true ); // Object cache diff --git a/includes/functions/settings/_settings_actions.php b/includes/functions/settings/_settings_actions.php index cdaed835..d4864c9b 100644 --- a/includes/functions/settings/_settings_actions.php +++ b/includes/functions/settings/_settings_actions.php @@ -480,7 +480,9 @@ function fictioneer_purge_theme_caches() { delete_option( 'fictioneer_query_cache_registry' ); // Transients (fast) - fictioneer_delete_transients_like( 'fictioneer_', true ); + fictioneer_delete_layout_transients(); + fictioneer_delete_transients_like( 'fictioneer_shortcode' ); + fictioneer_delete_transients_like( 'fictioneer_', true ); // Fast, but not safe for external object caches // Object cache wp_cache_flush();