Comment vider le cache via une tâche Cron

Dans cette documentation

WP Rocket offre des fonctions personnalisées pour effacer et précharger le cache. Afin de les exécuter à des heures spécifiques chaque jour, vous pouvez utiliser une tâche CRON sur votre serveur.

Mettre en place une tâche CRON

  1. Si vous souhaitez vous assurer que le cache est vidé à un moment précis chaque jour, vous pouvez créer une tâche cron (via votre hébergeur, regardez cette vidéo pour un exemple rapide) et le déclencher quand vous le désirez.
  2. Au lieu de pointer vers wp-cron (comme dans le tutoriel ci-dessus), vous allez définir votre tâche cron pour pointer vers le fichier spécifique que vous créez et téléchargez à l'étape suivante. Assurez-vous d'indiquer le chemin d'accès correct à votre fichier personnalisé, rocket-clean-domain.php, dans les paramètres de votre tâchecron job.

Vider le cache et lancer le préchargement

  1. Créez un fichier PHP et nommez-le (par exemple) : rocket-clean-domain.php
  2. Pour vider le cache et l'ensemble du site, utilisez le code suivant dans votre fichier :
  3. <?php 
    // Load WordPress.
    require( 'wp-load.php' );
    
    // Clear cache.
    // Also preload the cache if the Preload is enabled.
    if ( function_exists( 'rocket_clean_domain' ) ) {
    	rocket_clean_domain();
     }
    
    // Clear minified CSS and JavaScript files.
    if ( function_exists( 'rocket_clean_minify' ) ) {
    	rocket_clean_minify();
    }
    	
  4. Téléchargez ce fichier à la racine de votre installation WordPress (où wp-config.php et wp-load.php sont situés).
  5. Remarque : Si vous le placez à un autre endroit, vous devrez modifier le chemin dans require( 'wp-load.php' ); ci-dessus pour que ça corresponde au bon endroit.

  6. Assurez-vous de spécifier le bon chemin vers le fichier rocket-clean-domain.php dans les réglages de votre tâche cron. 
Si vous souhaitez vous assurer qu'il n'y a pas de suppression et de préchargement automatiques du cache en plus de ceux déclenchés par votre tâche cron, vous devez également:

Vider et précharger une ou des page(s) spécifique(s)

Au lieu d'effacer tout le cache, vous pouvez effacer une URL spécifique avec l'extrait de code suivant. Assurez-vous tout d’abord de : 

  • Remplacez https://example.com/page_url_1 avec l’URL que vous souhaitez précharger.
  • Copiez et modifiez la ligne pour toutes les URLs que vous souhaitez effacer et précharger.
<?php

// Load WordPress.
require( 'wp-load.php' );

define( 'WP_USE_THEMES', false );

// Add one page/post per line.
$pages_to_clean_preload = [
		'https://example.com/page_url_1',//copy this line as many times as necessary.
		'https://example.com/page_url_2',//copy this line as many times as necessary.
		];

if ( function_exists( 'rocket_clean_post' ) ) {

	foreach( $pages_to_clean_preload as $page_to_clean) {
		rocket_clean_post( url_to_postid ( $page_to_clean ) );
	}
}

if ( function_exists( 'get_rocket_option' ) ) {
	
	if( 1 == get_rocket_option( 'manual_preload' ) ) {
		
		$args = array();

		if( 1 == get_rocket_option( 'cache_webp' ) ) {
			$args[ 'headers' ][ 'Accept' ]      	= 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8';
			$args[ 'headers' ][ 'HTTP_ACCEPT' ] 	= 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8';
		}
	
		// Preload desktop pages/posts.
		rocket_preload_page( $pages_to_clean_preload, $args );
		
		if( 1 == get_rocket_option( 'do_caching_mobile_files' ) ) {
			$args[ 'headers' ][ 'user-agent' ] 	= 'Mozilla/5.0 (Linux; Android 8.0.0;) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Mobile Safari/537.36';
		
			// Preload mobile pages/posts.
			rocket_preload_page(  $pages_to_clean_preload, $args );
		}
  	}
}

function rocket_preload_page ( $pages_to_preload, $args ){
	
	foreach( $pages_to_preload as $page_to_preload ) {
		wp_remote_get( esc_url_raw ( $page_to_preload ), $args );
	}
}<br>

Ajouter des extraits PHP customisés à WP Cron en utilisant le plugin WP Crontrol

Comme méthode alternative pour exécuter des extraits PHP en tant qu'événements cron, vous pouvez utiliser le plugin WP Crontrol.
Veuillez suivre les étapes suivantes pour ajouter un nouvel événement cron :

  1. Installez le plugin WP Crontrol
  2. Dans WP Admin, allez à Outils -> Evenements Cron -> Ajouter un événement Cron. 
  3. Choisissez Evénements Cron PHP
  4. Ajoutez votre code. La balise d'ouverture <?php, et la ligne require( 'wp-load.php' ); ne doivent pas être ajoutés à ce code.
  5. Choisissez la recurrence, et sauvegardez l'événement.

Remarque : Pour améliorer la fiabilité des événements programmés de WordPress en général, il est recommandé d'ajouter une tâche cron côté serveur pour déclencher wp-cron.php, Vous pouvez suivre les étapes décrites dans notre doc : Mise en place d'une véritable tâche cron

Cela a-t-il répondu à votre question ? Merci pour votre retour :) Une erreur est survenue lors de l’envoi de votre retour. Veuillez réessayer plus tard.