Automatisches Löschen des Cache verhindern

⚠️ Hinweis: Diese Anleitung bezieht sich auf „action hooks“ in WordPress. Wenn du Code verstehst und das Konzept noch nicht kennst, kannst du hier mehr erfahren.

Es gibt zahlreiche Aktionen, die ein vollständiges oder partielles Löschen des Cache auslösen. Die häufigsten sind:

  • Cache leeren nach …
    Entsprechend der Zeiteinstellung für diese Option wird der komplette Cache automatisch geleert.
  • Neuer Inhalt
    Wenn du neuen Inhalt publizierst, oder bereits existierende Inhalte aktualisierst, wird der Cache für verknüpfte Inhalte (z.B. Taxonomy-Archive) gelöscht und neu aufgebaut. Du kannst hier mehr darüber erfahren:
    Wie funktioniert das Füllen des Cache?

💡 Tipp: Eine Liste der Aktionen, die ein vollständiges oder partielles Löschen des Cache auslösen, findest du hier: Wie oft wird der Cache aktualisiert?

Automatisches Löschen des Cache verhindern

Falls du für eine oder mehrere der zuvor genannten Aktionen das automatische Löschen des Cache unterbinden möchtest, kannst du das mittels eines MU plugins tun.

Eigenes MU Plugin

Folge den allgemeinen Anweisungen in diesem Artikel:
Eigenes (MU-)Plugin für Anpassungen erstellen

1
Lege einen neuen Ordner mu-plugins innerhalb von wp-content an.
Falls der Ordner mu-plugins dort schon existiert, verwende den existierenden.
2
Lege eine neue Datei an und speichere die folgenden Code-Zeilen darin. Nutze dafür einen Code- oder Texteditor:
<?php
defined( 'ABSPATH' ) or die( 'Cheatin&#8217; uh?' );
/**
 * Plugin Name: WP Rocket | Disable Automatic Cache Purge
 * Description: Disables automatic cache purging in WP Rocket.
 * Author:      WP Rocket Support Team
 * Author URI:  http://wp-rocket.me/
 * License:     GNU General Public License v3 or later
 * License URI: http://www.gnu.org/licenses/gpl-3.0.html
 */

// Disables the deletion of the entire cache.
add_action( 'wp_rocket_loaded', 'rocket_remove_all_purge_hooks' );

/**
 * Remove all of WP Rocket’s cache purging actions.
 * @return void
 */
function rocket_remove_all_purge_hooks() {

	// WP core action hooks rocket_clean_domain() gets hooked into.
	$clean_domain_hooks = array(
		// When user changes the theme
		'switch_theme',
		// When a user is added
		'user_register',
		// When a user is updated
		'profile_update',
		// When a user is deleted
		'deleted_user',
		// When a custom menu is updated
		'wp_update_nav_menu',
		// When any theme modifications are updated
		'update_option_theme_mods_' . get_option( 'stylesheet' ),
		// When you change the order of widgets
		'update_option_sidebars_widgets',
		// When category permalink prefix is update
		'update_option_category_base',
		// When tag permalink prefix is update
		'update_option_tag_base',
		// When permalink structure is update
		'permalink_structure_changed',
		// When a term is created
		'create_term',
		// When a term is updated
		'edited_terms',
		// When a term is deleted
		'delete_term',
		// When a link (post type) is added
		'add_link',
		// When a link (post type) is updated
		'edit_link',
		// When a link (post type) is deleted
		'delete_link',
		// When resulty are saved in the Customizer
		'customize_save',
		// When Avada theme purges its own cache
		'avada_clear_dynamic_css_cache',
	);

	// WP core action hooks rocket_clean_post() gets hooked into.
	$clean_post_hooks = array(
		// Disables the refreshing of partial cache when content is edited
		'wp_trash_post',
		'delete_post',
		'clean_post_cache',
		'wp_update_comment_count',
	);

	// Remove rocket_clean_domain() from core action hooks.
	foreach ( $clean_domain_hooks as $key => $handle ) {
		remove_action( $handle, 'rocket_clean_domain' );
	}

	// Remove rocket_clean_post() from core action hooks.
	foreach ( $clean_post_hooks as $key => $handle ) {
		remove_action( $handle, 'rocket_clean_post' );
	}
}
3
Speichere die Datei unter einem beliebigen Namen, aber nutze ausschließlich lateinische Kleinbuchstaben, Ziffern, oder Bindestriche im Dateinamen. Zum Beispiel:
wp-rocket-no-purge.php
4
Lade die Datei in den Ordner mu-plugins aus Schritt 1 hoch.
5
Zuletzt deaktiviere und re-aktiviere WP Rocket einmal.