is_dir( $cache_dir ) ) { $wp_filesystem->delete( $cache_dir, true ); } // Static-cache tree — separate from the flat-hash cache dir, holds // the {host}/{path}/index.html files the .htaccess rewrite block // serves directly. Same teardown rules as XSPEED_CACHE_DIR. $static_dir = WP_CONTENT_DIR . '/cache/xspeed-static'; if ( $wp_filesystem->is_dir( $static_dir ) ) { $wp_filesystem->delete( $static_dir, true ); } // Rewrite block in site-root .htaccess. WP's marker helpers handle // the "remove only our block" semantics — passing an empty array // strips the markers in place. $htaccess = ABSPATH . '.htaccess'; if ( $wp_filesystem->exists( $htaccess ) && $wp_filesystem->is_writable( $htaccess ) ) { if ( ! function_exists( 'insert_with_markers' ) ) { require_once ABSPATH . 'wp-admin/includes/misc.php'; } insert_with_markers( $htaccess, 'xSpeed Static Cache', array() ); } $drop_in = WP_CONTENT_DIR . '/advanced-cache.php'; if ( $wp_filesystem->exists( $drop_in ) ) { $contents = $wp_filesystem->get_contents( $drop_in ); if ( is_string( $contents ) && false !== strpos( $contents, 'XSPEED_DROPIN' ) ) { $wp_filesystem->delete( $drop_in ); } } $wp_config = ABSPATH . 'wp-config.php'; if ( defined( 'WP_CACHE' ) && WP_CACHE && $wp_filesystem->is_writable( $wp_config ) ) { $config = $wp_filesystem->get_contents( $wp_config ); if ( is_string( $config ) ) { $config = preg_replace( "/define\\(\\s*['\"]WP_CACHE['\"]\\s*,\\s*true\\s*\\);\\s*\\n?/", '', $config ); $wp_filesystem->put_contents( $wp_config, $config, FS_CHMOD_FILE ); } } }