I am trying to automatically clear the blog's cache when it is Archived (or Deactivated is fine) in a Multisite install. This is useful for anyone using a caching program like WP Super Cache as an archived or deactivated the blog will still show until the cache is cleared.
I have tried:
add_action( 'archive_blog', 'wp_clear_cache_custom' );
add_action( 'unarchive_blog', 'wp_clear_cache_custom');
And:
add_action( 'archive_blog', 'wp_clear_cache_custom_archive', 10, 1 );
add_action( 'unarchive_blog', 'wp_clear_cache_custom_archive', 10, 1 );
With the function:
function wp_clear_cache_custom() {
global $wpdb;
wp_cache_clear_cache( $wpdb->blogid );
}
This same setup works fine for clearing the cache when a theme is changed, etc. but not for blog status changes.
Any help is much appreciated.
This page seemed to be close but no dice: Perform action on WPMU blog deletion
I am trying to automatically clear the blog's cache when it is Archived (or Deactivated is fine) in a Multisite install. This is useful for anyone using a caching program like WP Super Cache as an archived or deactivated the blog will still show until the cache is cleared.
I have tried:
add_action( 'archive_blog', 'wp_clear_cache_custom' );
add_action( 'unarchive_blog', 'wp_clear_cache_custom');
And:
add_action( 'archive_blog', 'wp_clear_cache_custom_archive', 10, 1 );
add_action( 'unarchive_blog', 'wp_clear_cache_custom_archive', 10, 1 );
With the function:
function wp_clear_cache_custom() {
global $wpdb;
wp_cache_clear_cache( $wpdb->blogid );
}
This same setup works fine for clearing the cache when a theme is changed, etc. but not for blog status changes.
Any help is much appreciated.
This page seemed to be close but no dice: Perform action on WPMU blog deletion
Share Improve this question edited Apr 13, 2017 at 12:37 CommunityBot 1 asked Jan 3, 2014 at 21:15 Neverending WoesNeverending Woes 111 bronze badge1 Answer
Reset to default 0According to wpseek, there exist hooks for unarchive_blog
, archive_blog
, and deactivate_blog
. You can examine them in the source on WordPress's Trac site:
archive_blog
unarchive_blog
deactivate_blog
All of them use the $blog_id
parameter. Try changing your function to reflect that:
add_action( 'archive_blog', 'wp_clear_cache_custom' );
function wp_clear_cache_custom( $blog_id ) {
wp_cache_clear_cache( $blog_id );
}