WordPress plugin Autoptimize régler la limite du cache

Wordpress Auptimize Plugin - Rue de l'info

Le plugin Autoptimize pour WordPress, est vraiment d’une grande utilité, pour améliorer les performances des site WordPress. Il permet de mettre en cache les fichiers css et javascripts, combiner les fichiers, réduire le code HTLM et plus encore …

Bref, le plugin est très bien, mais il y a un petit problème que vous pourriez rencontrer, la taille du cache peut rapidement devenir incontrôlable et cela peut devenir un énorme problème !!!

Heureusement il existe une solution de contournement asses simple à mettre en place.

Pour cela il faut éditer le fichier fonctions.php de votre thème et ajouter le code suivant:

# Limite automatiquement le cache à 512MB
if (class_exists('autoptimizeCache')) {
    $myMaxSize = 512000; # You may change this value to lower like 100000 for 100MB if you have limited server space
    $statArr=autoptimizeCache::stats();
    $cacheSize=round($statArr[1]/1024);
 
    if ($cacheSize>$myMaxSize){
       autoptimizeCache::clearall();
       header("Refresh:0"); # Refresh the page so that autoptimize can create new cache files and it does breaks the page after clearall.
    }
}

On peut aussi utiliser les tâches planifiées de WordPress pour effacer la cache tout les un fois par semaine ou par mois:

<?php
namespace wppress;
class GarbageCollection
{
    public function __construct()
    {
        add_filter('cron_schedules', function ($schedules) {
            $schedules['weekly'] = array(
                'interval' => 604800,
                'display'  => __('Once a Week'),
            );
 
            $schedules['monthly'] = array(
                'interval' => 2635200,
                'display'  => __('Once a month'),
            );
            return $schedules;
        });
        if (!wp_next_scheduled('wppress/garbage/clear')) {
            wp_schedule_event(time(), 'monthly', 'wppress/garbage/clear');
        }
        add_action('wppress/garbage/clear', [ &$this, 'clear']);
    }
 
    public function clear()
    {
        if (class_exists('autoptimizeCache')) {
            /* Efface le cache une fois par mois */
            autoptimizeCache::clearall();
        }
    }
}
new GarbageCollection();
?>

Voila j’espère que cela vous sera utile 🙂

3 Commentaires sur “WordPress plugin Autoptimize régler la limite du cache

  1. Fred says:

    Bonjour oulad,
    Vous n’auriez pas eu une maj du thème, ce qui aurait enlever le script je pense.
    Je cherchais aussi une solution. Je vais tester.
    Merci

  2. oulad says:

    bonsoir
    j’ai bien suivi votre tuto et fait l’insertion du code
    maintenant après deux mois d’utilisation
    le cache ne se vide plus du coup
    je le fait tous les jours à la main, la limite est 512
    pouvez vous me conseiller?
    Merci

    • Nicolas says:

      Bonsoir oulad,
      si vous utilisez la première méthode, vérifier d’avoir bien mis ce code dans le fichier functions.php de votre thème.
      Si c’est bien le cas, apres le “if (class_exists(‘autoptimizeCache’)) {” ajouter un “var_dump(‘debug’);” pour vérifier que la class autoptimizeCache existe bien.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.