Support » Plugin: WP Super Cache » Cache is completely cleared on any admin post update

  • It seems that editing or creating any post completely clears the supercache cache. Noticed this on a site with 15,000+ posts. Time to clear the cache is long enough that editors are getting browser timeouts. Also during work hours the cache never grows because any edit to any of the thousands of posts clears the world.

    It looks like the issue is somewhere in wp-cache-phase2.php around line 1119.

    if ( isset( $wp_cache_refresh_single_only ) && $wp_cache_refresh_single_only && ( strpos( $_SERVER[ 'HTTP_REFERER' ], 'edit-comments.php' ) || strpos( $_SERVER[ 'REQUEST_URI' ], 'wp-comments-post.php' ) ) ) {
    		if ( defined( 'DONOTDELETECACHE' ) ) {
    			if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "wp_cache_post_change: comment detected and it's moderated or spam. Not deleting cached files.", 4 );
    			return $post_id;
    		} else {
    			if ( isset( $GLOBALS[ 'wp_super_cache_debug' ] ) && $GLOBALS[ 'wp_super_cache_debug' ] ) wp_cache_debug( "wp_cache_post_change: comment detected. only deleting post page.", 4 );
    			$all = false;
    		}
    	} else {
    		$all = true;
    	}

    If the logic in this block is adjusted to allow $all to return false under the correct circumstances only the changed page will be pruned.

    https://wordpress.org/plugins/wp-super-cache/

Viewing 6 replies - 1 through 6 (of 6 total)
  • No, you have enabled that option yourself (to clear the WHOLE cache) each time a new post/edit happens.

    You should disable this.

    @massiomoD the code snippet above is what IS IN THE PLUGIN as distributed.

    btw, I added $all = false after the above code and it is working well, although it circumvents the check for clearing the cache as a result of comments being posted.

    Moderator bdbrown

    (@bdbrown)

    Same problem here. The option “Clear all cache files when a post or page is published or updated.” is NOT enabled, yet editing any post or page causes the entire WP-Super-Cache to be cleared. Tried it with both mod rewrite and PHP; same results.

    Moderator bdbrown

    (@bdbrown)

    @jeff – I’m not concerned about comments so think your fix would work for me. Did you just replace the last “$all = true;” with “$all = false;”? Or did you add “$all = false;” somewhere else? Thanks.

    I am also getting this kind of behavior. And it is weird because it happens in all but one of the many WP installs I have. But in the rest of my installs I get this same bug: Update/create a post > all cache cleared/renamed, so as you say, the cache barely grows.

    In this “working” site i’ve compared everything: WPSC settings, htaccess files, the index.php file, crons generated by WPSC, you name it.

    All my installs use WPSC in mod_rewrite mode and are in a subfolder.

    There are many users with the same issue and the plugin author doesnt seem to figure out a solution.

    This is another one: https://wordpress.org/support/topic/cache-deleted-after-every-post-edit

    I tried both solutions: The one in that forum link and yours, changing true to false in wp-cache-phase2.php and any of them seem to fix the issue, BUT then the homepage cache file doesnt get deleted after a post update.

Viewing 6 replies - 1 through 6 (of 6 total)
  • The topic ‘Cache is completely cleared on any admin post update’ is closed to new replies.