Développement

Pour un développeur WordPress, les cron jobs sont un outil puissant et flexible pour automatiser les tâches au sein d’un site web WordPress. En programmant et en exécutant des fonctions spécifiques à des intervalles prédéterminés, les tâches cron peuvent gérer des actions de routine comme les mises à jour de contenu, les notifications par email, les sauvegardes de base de données, la synchronisation des données, et bien plus encore.

Dans cet article, je vous guiderai à travers le processus de configuration et de gestion des tâches cron dans WordPress, ce qui vous permettra de rationaliser efficacement les opérations de votre site web.

Qu’est-ce qu’un job cron WordPress ?

Les tâches cron de WordPress émulent les fonctionnalités du système cron que l’on trouve dans les systèmes d’exploitation de type Unix. Ils vous permettent de programmer des événements qui se produisent à des intervalles spécifiques ou à des moments prédéterminés. Ces événements englobent diverses tâches, allant de la publication d’articles programmés à la vérification des mises à jour, en passant par l’exécution de sauvegardes, l’envoi de bulletins d’information et l’exécution d’autres actions récurrentes.

Le système WordPress cron est basé sur une approche pseudo-cron, ce qui signifie qu’il s’appuie sur les requêtes des visiteurs pour déclencher des événements programmés. Lorsque quelqu’un visite votre site WordPress, le système vérifie si des événements programmés doivent être exécutés. Si un événement est programmé, il déclenche la fonction associée et effectue les actions nécessaires. Cependant, si votre site reçoit peu de trafic, ces événements peuvent ne pas s’exécuter comme prévu. Il est donc essentiel de comprendre comment configurer correctement les tâches cron afin de garantir une exécution fiable des événements suivants

Comment fonctionnent les tâches WordPress Cron ?

Les tâches WordPress cron fonctionnent selon un processus en deux étapes. Tout d’abord, vous enregistrez un événement programmé dans le système cron, en spécifiant son heure et sa fréquence. Ensuite, lorsque le moment désigné arrive, le système déclenche une demande d’exécution de la fonction associée.

Pour faciliter ce processus, WordPress fournit la fonction wp_schedule_event(). Cette fonction vous permet de planifier des événements en spécifiant une date pour l’exécution initiale, l’intervalle de récurrence et la fonction à exécuter. Par défaut, WordPress propose plusieurs programmes intégrés, tels que « hourly », « twicedaily » et « daily ». Cependant, vous pouvez créer vos propres programmes personnalisés en utilisant le filtre cron_schedules.

Mise en place d’un programme Cron personnalisé dans WordPress

Pour créer un programme cron personnalisé dans WordPress, vous pouvez utiliser le filtre cron_schedules. Ce filtre vous permet de définir vos propres intervalles et de les associer à un nom d’affichage convivial. Voyons un exemple de création d’un programme personnalisé « toutes les 15 minutes ».

// Ajouter un programme cron personnalisé « every_15_minutes » (toutes les 15 minutes)
add_filter('cron_schedules', 'custom_cron_schedules' ) ;

function custom_cron_schedules( $schedules ) {
  $schedules['every_15_minutes'] = array(
    'interval' => 900, // 900 secondes = 15 minutes
    'display' => __('Every 15 Minutes' ),
  ) ;
  return $schedules ;
}

Dans le code ci-dessus, nous nous connectons au filtre cron_schedules et définissons un nouveau programme appelé « every_15_minutes ».

Nous spécifions un intervalle de 900 secondes (soit 15 minutes) et fournissons un nom d’affichage convivial pour la programmation. En ajoutant cette programmation personnalisée, nous pouvons maintenant l’utiliser pour programmer des événements avec un intervalle de 15 minutes.

Programmation d’une fonction à l’aide du programme Cron personnalisé

Maintenant que nous avons défini notre programme cron personnalisé, nous pouvons programmer une fonction pour qu’elle s’exécute à l’intervalle spécifié. Voici un exemple de programmation d’une fonction personnalisée à l’aide de la programmation « every_15_minutes » que nous avons créée :

// Programmer un événement cron personnalisé pour qu'il s'exécute toutes les 15 minutes
wp_schedule_event( time(), 'every_15_minutes', 'my_custom_cron_function' ) ;

// Définir la fonction cron personnalisée
function my_custom_cron_function() {
// Exécutez vos actions personnalisées ici
}

Dans le code ci-dessus, nous utilisons la fonction wp_schedule_event() pour programmer notre fonction personnalisée my_custom_cron_function afin qu’elle s’exécute toutes les 15 minutes. Nous passons time() comme horodatage pour l’exécution initiale, ce qui garantit que la fonction est programmée pour commencer à s’exécuter immédiatement. Vous pouvez remplacer ma_fonction_cron_personnalisée par le nom de votre propre fonction qui contient les actions que vous souhaitez exécuter.

En combinant la planification cron personnalisée et la fonction de planification, nous avons mis en place une tâche cron personnalisée qui s’exécute toutes les 15 minutes. Cela permet d’automatiser des tâches avec un intervalle spécifique qui répond aux besoins de votre site web.

Autre exemple, à des fins de tests, nous envoyons à l’administrateur du site un email toutes les heures :

// Hook the function into WordPress cron job scheduler
if ( ! wp_next_scheduled( 'send_admin_email_hourly' ) ) {
    wp_schedule_event( time(), 'hourly', 'send_admin_email_hourly' );
}

// Define the function to send email to admin
function send_admin_email() {
    $admin_email = get_option( 'admin_email' ); // Get admin email
    $subject = 'Hourly Admin Email';
    $message = 'This is your hourly reminder from WordPress cron!';
    
    wp_mail( $admin_email, $subject, $message );
}

// Hook the function to the scheduled event
add_action( 'send_admin_email_hourly', 'send_admin_email' );

Au bout d’une heure vous devriez recevoir un email, et toutes les heures suivantes.
Pensez donc à supprimer ce code, après essai 😉

Déclencher des tâches WordPress Cron avec Server Cron

Pour garantir une exécution fiable des événements programmés dans WordPress, vous pouvez mettre en place un travail cron de serveur qui déclenche le système cron de WordPress à intervalles réguliers. Le processus varie en fonction de votre environnement d’hébergement. Dans cette section, je vais expliquer comment configurer une tâche cron de serveur en utilisant deux scénarios courants : le panneau de contrôle de l’hébergement et l’accès SSH/terminal. En effet, comme expliqué en préambule, les tâches WP-cron de WordPress ne sont déclenchées que si un utilisateur (ou un robot) déclenche l’affichage d’une page de votre site. Ce qui n’est pas forcément idéal pour les sites avec peu de trafic, et pour les tâches fréquentes.

Configuration de la tâche Cron du serveur via le panneau de contrôle de l’hébergement

Si votre hébergeur propose une interface de panneau de contrôle, comme cPanel ou Plesk, vous pouvez facilement configurer une tâche cron de serveur à l’aide de l’interface fournie. Voici un guide étape par étape :

Connectez-vous à votre panneau de contrôle de l’hébergement.
Localisez la section « Cron Jobs » ou « Scheduled Tasks ». Le nom exact peut varier en fonction de votre fournisseur d’hébergement.
Cliquez sur le bouton « Cron Jobs » ou « Add Task » pour créer une nouvelle tâche cron.
Remplissez les champs requis, tels que la commande à exécuter, la planification et les éventuelles options supplémentaires.
Pour la commande, utilisez ce qui suit :

wget -q -O - https://yourdomain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

Définissez la programmation souhaitée pour la tâche cron. Par exemple, toutes les 15 minutes.
Enregistrez la tâche cron et elle sera ajoutée à la configuration cron du serveur.

Avec ces étapes, vous avez réussi à configurer une tâche cron de serveur via votre panneau de contrôle d’hébergement. Le serveur va maintenant exécuter la commande spécifiée à l’horaire défini, en déclenchant le système cron de WordPress et en s’assurant que vos événements programmés se déroulent de manière fiable.

Voilà ce que ça donne chez O2Switch (l’hébergeur que je recommande) :

Cron

Configurer un job cron de serveur via SSH/Terminal

Si votre environnement d’hébergement ne fournit pas d’interface de panneau de contrôle mais permet un accès SSH ou terminal, vous pouvez toujours configurer une tâche cron de serveur en utilisant la ligne de commande. Voici comment procéder :

Connectez-vous à votre serveur à l’aide d’un client SSH ou ouvrez une application de terminal.
Une fois connecté, entrez la commande suivante pour ouvrir la table cron afin de l’éditer :

crontab -e

Cette commande ouvre l’éditeur de texte par défaut pour éditer la table cron. Si vous êtes invité à choisir un éditeur, sélectionnez celui que vous préférez.
Dans l’éditeur, ajoutez une nouvelle ligne avec la commande suivante :

*/15 * * * * wget -q -O - https://yourdomain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

Enregistrez le fichier et quittez l’éditeur.

Avec ces étapes, vous avez mis en place une tâche cron de serveur en utilisant l’accès SSH/terminal. Le serveur va maintenant exécuter la commande spécifiée à l’horaire défini, déclenchant le système cron de WordPress et assurant que vos événements programmés se déroulent de manière fiable.

Utiliser WP Crontrol pour gérer les tâches Cron

Pour gérer et tester efficacement les tâches cron dans WordPress, le plugin WP Crontrol est un outil précieux. Ce plugin fournit une interface conviviale pour examiner, contrôler et surveiller les événements cron, offrant ainsi une meilleure visibilité et un meilleur contrôle sur vos tâches planifiées.

Pour installer WP Crontrol et commencer à gérer vos tâches cron, suivez ces étapes simples :

Connectez-vous à votre tableau de bord d’administration WordPress.
Allez dans la section « Plugins » et cliquez sur « Ajouter un nouveau ».
Dans la barre de recherche, entrez « WP Crontrol » et appuyez sur « Entrée ».
Une fois le plugin trouvé, cliquez sur « Installer maintenant » et activez-le.

Wp Control Plugin

Après avoir activé WP Crontrol, accédez à ses fonctionnalités en allant dans « Outils » dans votre tableau de bord WordPress et en sélectionnant « Événements Cron ». Cet écran affiche une liste complète de tous vos événements cron, y compris les événements principaux de WordPress et les événements personnalisés que vous avez créés.

Avec WP Crontrol, vous pouvez facilement modifier les événements cron existants, supprimer ceux qui ne sont pas souhaités, ou ajouter de nouveaux événements directement à partir de votre tableau de bord WordPress. Le plugin fournit des informations détaillées sur chaque événement, y compris son crochet, son horaire, sa prochaine heure d’exécution et les arguments associés. En outre, vous pouvez filtrer les événements en fonction de critères spécifiques, ce qui permet de localiser et de gérer des événements spécifiques à des fins de dépannage ou de modification.

Récapitulons

Les tâches cron de WordPress sont une fonctionnalité puissante qui vous permet d’automatiser diverses tâches au sein de votre site web WordPress. En comprenant le fonctionnement des tâches cron de WordPress et en utilisant la fonction wp_schedule_event(), vous pouvez efficacement programmer et exécuter des fonctions à des intervalles spécifiques. De plus, la possibilité de créer des programmes cron personnalisés à l’aide du filtre cron_schedules augmente la flexibilité des tâches cron de WordPress pour répondre à vos besoins spécifiques.

En ajoutant une tâche planifiée au cron du serveur, vous pouvez vous assurer que vos événements planifiés s’exécutent de manière fiable, même si votre site connaît un faible trafic. Cela garantit que vos tâches automatisées et vos actions de routine sont exécutées comme prévu.

Avec le plugin WP Crontrol, la gestion et la surveillance de vos tâches cron deviennent un processus transparent. Vous pouvez contrôler et suivre sans effort l’exécution des événements cron, assurant ainsi le bon fonctionnement de vos tâches programmées.

En exploitant le potentiel des tâches cron de WordPress et en tirant parti des outils disponibles, vous pouvez optimiser les performances de votre site web, améliorer l’expérience des utilisateurs (comme par exemple leur envoyer automatiquement une notification hebdomadaire personnalisée) et vous concentrer sur la création d’un contenu et de fonctionnalités exceptionnels.

Chez Condorito, nous nous efforçons d’aller plus loin que le simple site vitrine, votre site web devient un outil de votre développement économique : les tâches WP-Cron permettent d’automatiser certaines tâches, tout en renforçant le lien avec vos « abonnés ».


Retrouvez tous nos livres blancs.

5 commentaires

  1. Automation Factory

    15 mai 2025 at 1h39

    Excellent explications sur WP-Cron. On l’utilise partout maintenant.

    C’est un gamechanger pour nous !

    Répondre
  2. Chen Wei

    23 juin 2025 at 16h42

    Very practical guide. The plugin recommendation was useful.

    Répondre
  3. Olga Volkova

    4 août 2025 at 14h16

    Exactly what I needed. Will implement this immediately.

    Répondre
  4. Freelance Dev

    5 octobre 2025 at 16h31

    Simplifier les tâches manuelles c’est tellement important. Merci !

    Répondre
  5. Mika Spécialiste IT

    29 octobre 2025 at 22h05

    WP-Cron ça sauve la vie ! Surtout pour les newsletters.

    Répondre

Laisser un commentaire

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

Cet article vous intéresse ?

Cet article vous intéresse ?

Abonnez-vous à notre newsletter pour être averti de notre actualité ! 

Vous êtes désormais inscrit !