Cron est un utilitaire Unix/Linux qui est généralement utilisé pour planifier des commandes ou un script sur un serveur web qui tourne en arrière-plan. Une tâche cron est la tâche elle-même, qui est utilisée pour planifier des tâches à des heures, des dates ou des intervalles fixes périodiques. Il s’agit généralement de tâches répétitives qui sont automatisées pour gagner du temps. Dans WordPress, ceci est géré par WP-Cron, qui est utilisé pour simuler un cron système.

Quelques exemples d’une tâche cron de WordPress peuvent impliquer la planification d’un article à être publié ou d’un plugin de sauvegarde s’exécutant selon un calendrier prédéfini. Aujourd’hui, nous allons nous plonger dans la façon de créer, de modifier et d’exécuter facilement une tâche cron WordPress.

Comment configurer une tâche cron WordPress

Il est important de noter que WP-Cron est légèrement différent d’un cron système et ils ont chacun leurs propres avantages et inconvénients. Par exemple, WP-Cron repose entièrement sur des intervalles, alors qu’un cron système repose sur des temps spécifiques. Un WP-Cron ne fonctionne également que lorsque la page est chargée (backend ou frontend), ce qui pourrait être moins fiable. Les intervalles par défaut fournis par WordPress sont horaires, biquotidiens et quotidiens.

Pour planifier les événements WP-Cron, vous devez créer des hooks personnalisés. Nous vous recommandons de consulter le manuel officiel du plugin WordPress qui contient un guide intéressant sur la planification des événements WP Cron. Si vous êtes à la recherche d’une autre façon de configurer un cron système avec WordPress, nous vous recommandons de lire l’article de Tom Mcfarlin sur la définition d’une tâche cron WordPress. Et pour ceux qui ne sont peut-être pas aussi avancés, nous allons explorer comment utiliser facilement WP-Cron avec le populaire plugin gratuit WP Crontrol. Ceci vous permet de voir et de contrôler ce qui se passe dans le système WP-Cron.

Plugin WordPress WP Control

Plugin WordPress WP Control

WP Crontrol a plus de 80 000 installations actives avec une note impressionnante de 4,9 sur 5. Beaucoup de gens dans la communauté WordPress aiment vraiment ce plugin.

Ce plugin est super utile. Il montre ce que les tâches CRON devraient exécuter, excellente première étape pour comprendre ce qui se passe et si cela fonctionne ou non. 5 étoiles juste là. De plus, vous pouvez créer de nouvelles tâches cron et déclencher des crons existants à être exécutés, 5 étoiles bonus en plus. — Josh, créateur de Caldera Forms

Vous pouvez le télécharger à partir du référentiel WordPress ou en le recherchant dans votre tableau de bord WordPress sous « Ajouter » extensions.  Les caractéristiques de WP Control incluent :

  • La possibilité de visualiser tous les événements cron avec leurs arguments, leur récurrence et la date d’exécution suivante.
  • Modifier, supprimer et exécuter immédiatement tous les événements cron.
  • Ajouter de nouveaux événements cron.
  • Ajouter, modifier et supprimer des crons programmés personnalisés.

Cron serveur

Si vous êtes un client Kinsta, nous avons également un cron serveur qui fonctionne sur tous les sites toutes les 15 minutes. Consultez notre article sur la gestion des crons serveurs chez Kinsta.

Programmation de WP-Cron

Une fois activé, vous pouvez modifier les tâches cron de WordPress sous « Cron Schedules » dans les paramètres de votre tableau de bord WordPress. Notez que le plugin ajoute une programmation par défaut supplémentaire hebdomadaire. Vous pouvez également ajouter des programmations supplémentaires en quelques secondes, par exemple 21600 secondes pour toutes les 6 heures.

Programmation de WP-Cron

Programmation de WP-Cron

Ces intervalles peuvent également être ajoutés avec du code à l’aide d’un filtre, par exemple :

add_filter( 'cron_schedules', 'example_add_cron_interval' );

function example_add_cron_interval( $schedules ) {
 $schedules['five_seconds'] = array(
 'interval' => 5,
 'display' => esc_html__( 'Every Five Seconds' ),
 );

return $schedules;
 }

Événements WP-Cron

Vous pouvez également utiliser le plugin pour voir vos tâches cron WordPress en cours qui sont déjà planifiées. Sous Outils, cliquez sur « Cron Events ». Beaucoup de noms d’actions sont facilement reconnaissables car ils doivent correspondre à une partie du nom du plugin, comme « woocoomerce_cleanup_sessions » ou « gravityforms_cron ».

Événements WP-Cron

Événements WP-Cron

Vous lancez un événement Cron immédiatement en cliquant simplement sur « Exécuter maintenant » à côté du nom de l’action. Cela peut être utile pour dépanner des choses comme vous pourriez avoir besoin d’exécuter un événement Cron plusieurs fois.

Événement cron exécuté avec succès

Événement cron exécuté avec succès

Modifier un événement Cron

Vous pouvez également éditer les événements Cron existants en cliquant sur « Edit » à côté du nom de l’action. Vous pouvez ensuite modifier le nom de l’action, les arguments, la prochaine exécution et la récurrence programmée. Soyez prudent avec cela, car de nombreux plugins dépendent de leur tâche Cron pour fonctionner correctement.

Modifier un événement Cron

Modifier un événement Cron

Ajouter un événement Cron

Vous pouvez également ajouter des événements Cron. Dans cet exemple, nous allons ajouter une tâche cron WordPress pour le plugin Disqus. Beaucoup peuvent vouloir le faire pour modifier la fréquence de synchronisation ou s’ils ont des problèmes avec la synchronisation des commentaires. La documentation de chaque développeur de plugin tiers devrait avoir le nom de son événement cron, ou plutôt le nom de l’action. Dans ce cas, c’est « dsq_sync_forum » qui est utilisé par le plugin.

Si vous en créez un à partir de zéro, vous aurez besoin d’un hook d’action correspondant quelque part dans votre code, tel que votre fichier functions.php. Ceci est l’exemple donné par WP-Crontrol :

add_action( 'my_hookname', 'my_function' );

L’étape suivante consiste à écrire votre fonction.

function my_function() {
    wp_mail( 'hello@example.com', 'WP Crontrol', 'WP Crontrol rocks!' );
}

Pour Disqus, nous ajoutons d’abord une nouvelle programmation cron de 600 secondes (10 minutes). On clique ensuite sur « Add Cron Event » et on entre « dsq_sync_forum » comme nom d’action, on choisit le temps d’exécution suivant, et on choisit la récurrence de 10 minutes qu’on vient de créer. Puis on clique sur  » Add Cron Event ». Cela s’exécutera désormais automatiquement toutes les 10 minutes pour nous permettre de synchroniser manuellement les commentaires de Disqus vers notre base de données WordPress.

Ajouter une tâche cron WordPress

Ajouter une tâche cron WordPress

Et c’est à peu près tout ! C’est très facile à utiliser.

WP-Cron avec WP-CLI

Vous pouvez également gérer des événements WP-Cron et/ou une tâche cron WordPress dans WP-CLI. Par exemple, la commande suivante vous donnera la liste des événements cron courants.

wp cron event list

Liste des événements wp-cron

Voir la documentation officielle de cron avec WP-CLI pour des commandes et paramètres supplémentaires.

17
Partages