Récemment, un de nos lecteurs nous a demandé s’il était possible de voir et de contrôler le système de tâches cron de WordPress dans le tableau de bord. D’après notre expérience, c’est une question que se posent de nombreux utilisateurs de WordPress, en particulier lorsqu’ils se familiarisent avec le fonctionnement de WordPress en coulisses.
Si vous n’êtes pas familier, Cron est une technologie qui permet d’exécuter des tâches programmées sur un serveur web. WordPress est livré avec son propre cron intégré qui lui permet d’exécuter des tâches programmées telles que la vérification des mises à jour, la publication d’articles programmés, etc.
Dans cet article, nous allons vous afficher comment voir et contrôler les tâches cron de WordPress.
Qu’est-ce que le Cron de WordPress ? Comment cela fonctionne-t-il ?
Cron est un terme technique utilisé pour désigner les commandes à exécuter à une heure planifiée ou à intervalles réguliers. La plupart des serveurs web l’utilisent pour assurer la maintenance du serveur et exécuter des tâches planifiées.
WordPress est livré avec son propre système cron qui lui permet d’effectuer des tâches planifiées. Par exemple, vérifier les mises à jour, supprimer les anciens commentaires de la corbeille, publier des publications programmées, etc.
Lesextensions WordPress peuvent également l’utiliser pour effectuer des tâches que vous aurez spécifiées. Par exemple, votre extension de sauvegarde WordPress peut utiliser WordPress cron pour créer automatiquement des sauvegardes à un horaire donné.
Cependant, l’utilisation irresponsable de WordPress cron par des extensions peut ralentir votre site. En particulier, si vous êtes sur un hébergeur mutualisé.
Si une extension exécute fréquemment des tâches gourmandes en ressources, vous devez identifier le problème et le corriger.
Voyons comment voir et contrôler le système cron de WordPress sans écrire de code.
Vue et contrôle du système Cron de WordPress
La première chose à faire est d’installer et d’activer l’extension WP Crontrol. Pour plus de détails, consultez notre guide étape par étape sur l’installation d’une extension WordPress.
Une fois activé, vous devez vous rendre sur la page Outils » Réglages Cron pour définir les paramètres du cron.
Vous verrez une liste de tous les évènements cron planifiés pour s’exécuter sur votre site à l’aide du système cron de WordPress.
Dans la première colonne, vous verrez le nom du crochet qui exécute le cron.
Les noms des crochets donnent généralement une idée de ce que fait l’évènement en question.
La plupart des crochets WordPress par défaut commencent par le préfixe wp_, comme wp_update_plugins, wp_update_themes, etc.
Vos extensions WordPress peuvent ou non utiliser leurs propres préfixes pour leurs crochets. Par exemple, All in One SEO utilise le préfixe aioseo_
.
Vous pourrez également voir quand un cron sera exécuté pour la prochaine fois, et l’intervalle de temps entre les deux exécutions.
La dernière colonne de la liste vous permet de modifier, de supprimer ou d’exécuter un évènement cron.
Important : Faites très attention à ce que vous faites avec les évènements cron et ne supprimez jamais un évènement cron par défaut de WordPress.
Supposons maintenant que vous voyez un évènement cron créé par une extension WordPress qui consomme beaucoup de ressources.
Tout d’abord, vous devriez vérifier les Réglages de l’extension pour voir s’il y a une option pour le contrôler à partir de là. Si ce n’est pas le cas, vous pouvez cliquer sur le lien « Modifier » à côté de l’évènement cron pour le modifier.
En cliquant sur le bouton Modifier, vous ouvrirez l’onglet « Modifier l’évènement Cron » ci-dessous.
Ici, vous pouvez modifier la fréquence à laquelle vous souhaitez que l’événement se déroule.
Une fois que vous avez terminé, cliquez sur le bouton « Modifier l’événement Cron » pour enregistrer vos paramètres.
Ajouté vos propres évènements Cron dans WordPress
L’extension WP Crontrol permet d’ajouter facilement vos propres tâches cron à WordPress. Il suffit de se rendre sur la page Outils » Événements Cron et de faire défiler la page jusqu’à l’onglet ‘Ajouter un événement Cron’.
Tout d’abord, vous devez fournir un nom de crochet pour votre événement cron. Les noms de crochets ne peuvent pas contenir d’espaces ou de caractères spéciaux.
Si la fonction que vous souhaitez exécuter nécessite des arguments, vous pouvez fournir ces arguments.
Ensuite, vous devez indiquer à WordPress quand lancer le cron la prochaine fois. Vous pouvez saisir ‘now’ qui déclenchera le cron immédiatement, ‘tomorrow’, ‘+2 days’, ou ’25-02-2020 12:34:00′.
Dernier point, vous devez sélectionner un calendrier. Vous pouvez sélectionner toutes les heures, deux fois par jour, tous les jours ou une fois par semaine. Vous pouvez également faire en sorte que l’évènement ne se répète pas.
Une fois que vous avez terminé, cliquez sur le bouton « Ajouter un événement Cron » pour enregistrer vos modifications.
Vous remarquerez que votre événement cron apparaît désormais dans la liste des évènements.
Cependant, actuellement, il ne fait rien parce que vous n’avez pas indiqué à WordPress ce qu’il doit faire lorsque cet évènement est déclenché.
Vous devrez ajouter votre crochet et une fonction qui s’exécute lorsque le crochet cron est déclenché.
add_action( 'wpb_custom_cron', 'wpb_custom_cron_func' );
function wpb_custom_cron_func() {
wp_mail( 'you@example.com', 'Automatic email', 'Automatic scheduled email from WordPress to test cron');
}
N’oubliez pas d’utiliser votre propre adresse e-mail.
Cette fonction vous envoie simplement un e-mail de test lorsque le cron s’exécute. Vous pouvez maintenant défiler vers le haut de la page et cliquer sur le lien « Exécuter maintenant » à côté de votre évènement cron pour le tester.
Note : L’utilisation de cron nécessite des compétences de niveau intermédiaire en matière de développement/développeuse WordPress. Si vous ne possédez pas ces compétences, nous vous recommandons de faire appel à un développeur/développeuse WordPress.
C’est tout, nous espérons que cet article vous a aidé à apprendre comment voir et contrôler les tâches cron de WordPress. Vous pouvez également consulter notre guide sur la façon d’installer en masse vos extensions WordPress préférées ou nos choix d’experts des meilleures extensions de sécurité WordPress.
Si vous avez aimé cet article, veuillez alors vous abonner à notre chaîne YouTube pour obtenir des tutoriels vidéo sur WordPress. Vous pouvez également nous trouver sur Twitter et Facebook.
Syed Balkhi
Hey WPBeginner readers,
Did you know you can win exciting prizes by commenting on WPBeginner?
Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
You can get more details about the contest from here.
Start sharing your thoughts below to stand a chance to win!
Paul Barrett
We run cron at server level because wp-cron overloads teh server. There’s is nothing on our site that is so time-critical the jobs need to running frequently. If we set the frequency to say daily, would WordPress have a problem?
WPBeginner Support
It would heavily depend on what is being done on the site and when. We do not have a specific recommendation for what can be delayed to that extent.
Administrateur
Matt K
When I go to change the the recurrence on the Hooks, they just get changed back. Something isn’t right. Do I need to disable WP crons in wp-config.php first?
WPBeginner Support
It would depend on the specific chron job, if you reach out to the plugin’s support they should be able to assist
Administrateur
Heinz
Can I deactivate or even delete WP Control plugin in after having set a cron job, so I don’t have too many plugins running and slow down the website?
WPBeginner Support
Yes, as long as you’ve used one of the default schedules (such as daily). If you’ve added a custom schedule any event that uses it will run once more but won’t repeat after that.
The plugin should not cause a slowdown of your site, for a better understanding of how WordPress plugins affect your site you may want to take a look at our article here:
https://www.wpbeginner.com/opinion/how-many-wordpress-plugins-should-you-install-on-your-site/
Administrateur
Andre Hesdahl
I am a newbee with WordPress and don’t know where to put (or how to execute) the code:
add_action( ‘wpb_custom_cron’, ‘wpb_custom_cron_func’ );
function wpb_custom_cron_func() {
wp_mail( ‘you@example.com’, ‘Automatic email’, ‘Automatic scheduled email from WordPress to test cron’);
}
Jeff
Thanks for the article. Interesting to see the number of plugins that have cron jobs running often. Great peak under the hood plugin…
David
How can i configure the cron to every half hour?
hazel beaver
When I check the cron schedule the dates shown in the ‘next run’ column are all in the past. Does that mean they are not running?
In the past I think I added ‘true’ in the wp config file to stop automatic wp updates from breaking my site…. could this be the cause?
Janson
Does this work in Multi-site? Can one control crons for all instances in a multisite scenario?
Oleg
Great article, but no need for
if ( ! wp_next_scheduled( ‘wpb_custom_cron’ ) ) {
wp_schedule_event( time(), ‘hourly’, ‘my_task_hook’ );
}
this part is done in the plugin,
beny salim
how can i add Recurrence like five minutes, ten minutes
Ahmad Sayeed
I tested you given example. It works like a superman. But please give us an example to send parameter. I have added the function while creating the even. But I don’t know how to use them on PHP function.
Please give us an example
Sunny
My website is coming up with a long wp cron string after my URL and I cant get rid of it. Any thoughts?
?doing_wp_cron=1499261576.8675799369812011718750 comes up after my url and its making me look really spammy. Your insight would be appreciated.
Aniket Ashtikar
Is that ‘my_task_hook’ cron hook rightly mentioned there at line 2 or should that rather be changed to ‘wpb_custom_cron’?
Matt
Do you know if its possible to visit a link in the wp-admin area? I have a plugin that adds admin features to my wordpress site but I really want this scheduled to happen every 24 hours. I have the link but obviously am required to be logged in.
Pam M
Do you need that first if statement shown in the sample code? It looks like it would override the ability to schedule and unschedule in the WP Crontrol plugin.
Your example worked nicely when I scheduled the job in the plugin and tested it with the Run Now option. I’ll see if I get an email at the scheduled time too.
Thanks for the helpful background info.
Nigam
Hi
When I am going to refresh the page of WP-Cron Events from wordpress admin then only run the event.