Comment gérer les tâches WordPress Cron

Publié: 2021-05-14
wordpress cron
Suivez @Cloudways

De nombreux développeurs WordPress, en particulier les débutants, ont une question commune « qu'est-ce que WordPress cron » avec « comment gérer les tâches WordPress cron ? » une seconde près.

La réponse est simple : utilisez l'une des méthodes de gestion des tâches WordPress cron que je vais décrire dans cet article.

  • Qu'est-ce que WordPress Cron ?
  • Comment gérer une tâche WordPress Cron
    • Comment gérer les travaux WordPress Cron avec le plugin
      • Étape 1 : Installer le plugin de contrôle WP
      • Étape 2 : Afficher et comprendre les événements Cron
      • Étape 3 : Modifier l'événement Cron
      • Étape 4 : Ajout d'un intervalle de temps personnalisé
      • Étape 5 : Ajout d'un nouvel événement Cron
    • Comment gérer les travaux WordPress Cron avec WP CLI
  • Comment configurer une vraie tâche Cron

Cron est un utilitaire UNIX standard pour planifier l'exécution de tâches (script ou commande) à une heure, une date ou un intervalle spécifique. La tâche qu'il va exécuter est connue sous le nom de tâche cron. Comme vous pouvez le deviner, le but d'une tâche cron est d'automatiser les tâches répétitives afin que vous puissiez utiliser votre temps de manière plus productive.

Cependant, le travail WordPress cron est légèrement différent du cron standard, et c'est pourquoi avant de plonger dans l'action et le processus, vous devez comprendre ce qu'est un cron WordPress et comment il fonctionne.

Qu'est-ce que WordPress Cron ?

WordPress possède son propre système cron pour planifier des tâches telles que la vérification des mises à jour, la planification d'un article pour publication et la suppression des commentaires de la corbeille. Toutes les tâches cron sont gérées par WP-Cron.

Alors que le nom (et l'idée principale) vient de UNIX cron, WordPress cron ne fonctionne pas comme ça et utilise des intervalles pour la planification des tâches. Les intervalles de temps par défaut fournis par WordPress sont horaires, biquotidiens, quotidiens et hebdomadaires. Ici, les tâches basées sur le temps dépendent des utilisateurs qui visitent votre site, ce qui signifie que WordPress cron ne s'exécutera que si un utilisateur visite votre site Web.

En d'autres termes, WordPress cron est exécuté lorsque la page se charge. Parfois, ce n'est pas si fiable, et c'est pourquoi de nombreux utilisateurs préfèrent une tâche cron au niveau du serveur à la tâche WP-Cron.

Dans cet article, je vais vous montrer comment gérer les tâches cron WordPress et configurer une véritable tâche cron pour votre site WordPress.

Comment gérer un travail WordPress Cron

Il existe de nombreuses façons de configurer et de gérer les tâches cron WordPress, mais je vais vous montrer deux méthodes populaires.

Le premier utilise un plugin de gestion cron comme WP Crontrol qui vous permet d'ajouter, de modifier et de gérer des tâches WordPress cron directement depuis le tableau de bord WP. Vous pouvez également créer une tâche cron, créer des hooks et des fonctions et définir des intervalles de temps personnalisés pour les tâches.

Et la deuxième méthode est avec WordPress CLI.

Comment gérer les travaux WordPress Cron avec le plugin

J'utiliserai le plugin WP Crontrol qui vous permet de visualiser et de contrôler WordPress cron pour votre application WordPress. C'est le plugin populaire utilisé pour gérer les tâches cron WP et compte plus de 100 000 installations actives.
C'est la méthode la plus simple pour gérer les tâches cron WordPress et vous pouvez rapidement afficher, modifier, créer, supprimer et faire bien plus avec les événements cron WordPress.

Alors, commençons!

Étape 1 : Installer le plugin de contrôle WP

Comme tout autre plugin, vous devez installer WP Crontrol à partir du référentiel de plugins et l'activer. Une fois installé, vous remarquerez qu'une nouvelle option « Événements Cron » est apparue dans l'onglet Outils .

événements cron

Étape 2 : Afficher et comprendre les événements Cron

Ensuite, vous devez cliquer sur Cron Events et vous verrez une liste des événements cron qui s'exécutent sur votre application WordPress.

liste des événements cron

À partir de cette section, vous pouvez exécuter, modifier et supprimer vos événements cron. Vous verrez cette option lorsque vous passerez votre souris sur n'importe quel événement cron.

Vous trouverez également des informations utiles sur ces tâches cron et identifierez rapidement quelle tâche cron est utilisée dans quel but et bien plus encore. Dans la première colonne, Hook affiche le nom du hook utilisé par le noyau WordPress ou n'importe quel plugin. Par exemple, le préfixe « wp » indique simplement qu'il s'agit d'un cron du noyau WordPress. Vous remarquerez également qu'il n'y a pas d'option pour supprimer ces événements cron, mais vous pouvez utiliser les options d' édition et d' exécution maintenant . De même, pour vos plugins, vous remarquerez que d'autres préfixes sont utilisés (par exemple, pour WooCommerce, "wc" ou "woocommerce").

La deuxième colonne Arguments contient uniquement les arguments qui sont passés aux fonctions de hook.

La troisième colonne indique quand cette tâche cron sera exécutée la prochaine fois.

La quatrième colonne Action montre quelle action ce cron va effectuer (la « fonction » de la tâche cron).
La dernière colonne définit les horaires de récurrence des tâches cron. Il s'agit essentiellement de l'intervalle de temps pour la tâche planifiée.

Étape 3 : Modifier l'événement Cron

Modifions maintenant une tâche cron WP pour tester ce plugin.

Accédez au nom et modifier clic d'un crochet. Une nouvelle section « Modifier l'événement Cron » apparaîtra où vous verrez différents champs. Dans mon cas, j'ai édité le hook "wp_privacy_delete_old_export_files". Ensuite, je vais changer la récurrence de cette tâche cron en « Toutes les quinze minutes ».

modifier les événements cron

Étape 4 : Ajout d'un intervalle de temps personnalisé

Ensuite, je vais vous montrer comment ajouter un intervalle de temps personnalisé pour vos événements cron. Pour cela, cliquez sur l'onglet « Cron Schedule » et un nouvel écran apparaîtra où vous verrez les détails des intervalles de temps programmés. Ensuite, faites défiler vers le bas où vous verrez « Ajouter un calendrier Cron ». Remplissez les champs et cliquez sur Add Cron Schedule .

ajouter un calendrier cron

Notez que l'entrée pour l'intervalle est en secondes. Je vais utiliser 600 secondes pour régler l'intervalle à 10 minutes.

Vous pouvez maintenant modifier votre événement cron et le remplacer par votre propre intervalle personnalisé.

modifier l'événement cron

Étape 5 : Ajout d'un nouvel événement Cron

Vous savez maintenant comment gérer les tâches simples pour vos événements cron, mais que faire si vous souhaitez ajouter votre propre tâche cron pour votre application WordPress. Ne vous inquiétez pas, c'est si simple et tout ce que vous avez à faire est de suivre les instructions ci-dessous.

Tout d'abord, cliquez sur Ajouter un événement Cron et vous accéderez à la section d'ajout de cron. Ensuite, donnez simplement un nom de crochet comme vous le souhaitez (devrait suivre la convention de nommage PHP normale et pas d'espaces).

Ensuite, ajoutez des arguments (c'est facultatif) et dans mon cas, c'est vide. Et ensuite, sélectionnez n'importe quelle option et indiquez une heure dans le champ Prochaine exécution . Enfin, choisissez une heure de récurrence (horaire) pour votre nouveau cron et cliquez sur Ajouter un événement .

ajouter un événement cron

Si vous avez des questions à ce sujet, vous pouvez vérifier les paramètres de toute tâche cron en cours d'exécution à partir de vos événements cron.

Après avoir ajouté une nouvelle tâche cron, accédez à l'onglet événements cron et vérifiez votre cron nouvellement créé. Vous remarquerez que dans la colonne d'action, il vous montrera Aucun (erreur). C'est parce que vous n'avez défini aucune action pour cette tâche cron. Il faut donc écrire quelques lignes de code dans le fichier functions.php du thème et ajouter une action.

aucune erreur

Remarque : Avant d'aller plus loin, il est fortement recommandé de sauvegarder le site WordPress.

Ouvrons le fichier et ajoutons les lignes de code suivantes juste après <?php :

 add_action( 'cloudways_new_cron', 'cw_function' );
fonction cw_function() {
wp_mail( '[email protected]', 'Cloudways Cron', 'Cloudways - un hébergement cloud géré !' );
}

N'oubliez pas de remplacer mon adresse e-mail par la vôtre.

fonction adresse e-mail php
Vous pouvez voir dans l'image ci-dessus, je l'ai directement édité avec le tableau de bord WordPress. Si vous le souhaitez, vous pouvez éditer ce fichier via un client FTP comme FileZilla.

Ensuite, vérifions la boîte de réception des e-mails et voyons si nous recevons le message.

e-mail cron

Tada ! C'est fait et nous avons ajouté avec succès un nouvel événement cron.

Comment gérer les travaux WordPress Cron avec WP CLI

Vous pouvez également afficher et gérer toutes vos tâches WordPress cron à partir de WordPress CLI. Chez Cloudways, vous devez lancer le terminal et vous connecter avec les informations d'identification du serveur.

Ensuite, placez le chemin de votre application WordPress. Dans mon cas, l'URL était :

 cd applications/urrghmpqks/public_html/ 

tâche cron WP CLI

Ensuite, vous devez exécuter cette commande :

 liste d'événements wp cron 

tâche cron WP CLI

Vous pouvez voir le nom du hook, l'heure de la prochaine exécution, le relatif de la prochaine exécution et la récurrence (heure planifiée).

Comment configurer une vraie tâche Cron

Maintenant, vous savez ce qu'est le travail WordPress cron et comment il fonctionne. Que se passe-t-il si vous souhaitez le remplacer par une véritable tâche cron pour une raison quelconque, comme un faible trafic, des tâches importantes qui doivent être exécutées à un moment donné, des attaques DDoS excessives ou un temps de chargement de page élevé.

Alors, commençons!

Étape 1 : Ouvrez et modifiez le fichier wp-config.php

Tout d'abord, vous devez ouvrir le fichier wp-config à l'aide d'un client FTP tel que FileZilla ou d'un client SSH tel que puTTY. Après cela, éditez le fichier et placez la ligne de code suivante avant la ligne où il est écrit /* C'est tout, arrêtez d'éditer ! Bon blog. */

Code:

 define('DISABLE_WP_CRON', true); 

modifier le fichier de configuration wp

Ce code désactive les événements cron en cours sur votre site WordPress et vous pouvez maintenant créer une véritable tâche cron.

Gérez de vraies tâches Cron via la plate-forme Cloudways

Commencez avec 3 jours d'essai gratuit

ESSAYEZ MAINTENANT

Étape 2 : Ajout d'une nouvelle tâche Cron au serveur

Ensuite, connectez-vous à votre plate-forme Cloudways, puis accédez au panneau Gestion des applications > Gestion des tâches Cron > section Avancé .

ajouter une nouvelle tâche cron

Ajoutez ensuite la commande suivante et cliquez sur Enregistrer les modifications :
*/5 * * * * wget -q -O - 'https://wordpress-413270-1299955.cloudwaysapps.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

onglet cron avancé

Dans la commande ci-dessus, j'ai d'abord défini un intervalle de cinq minutes pour la tâche cron. Vous pouvez utiliser ce site pour vérifier l'expression de l'horaire. Dans mon cas, */5 * * * * est l'expression d'intervalle.

Toutes nos félicitations! Vous avez ajouté avec succès une vraie tâche cron.

Derniers mots !

J'espère que cet article vous a aidé à comprendre comment fonctionne le travail WordPress cron. J'ai discuté de deux méthodes pour gérer les tâches cron WordPress ; un via un plugin et l'autre via WP-CLI. J'ai également expliqué comment configurer une vraie tâche cron sur un serveur en direct.

Si vous avez des questions, s'il vous plaît laissez-moi savoir dans la section commentaire ci-dessous.