Les tâches cron de WordPress (WP-Cron) gèrent des tâches programmées telles que la publication d'articles, l'envoi d'e-mails ou la mise à jour de plugins. Contrairement aux tâches cron traditionnelles du serveur, WP-Cron est déclenché par les visites du site web, ce qui peut parfois entraîner des problèmes s'il n'est pas correctement configuré. Ce guide explique comment vérifier que WP-Cron fonctionne correctement.
Conditions préalables
- Accès au tableau de bord de WordPress.
- Accès FTP/SFTP ou accès au gestionnaire de fichiers de votre installation WordPress (facultatif pour certaines méthodes).
- Connaissance de base des plugins WordPress et des environnements de serveur.
Coupon Affiliates Cron Jobs
Coupon Affiliates crée et exécute les tâches cron suivantes :
- wcusage_reports - Pour les rapports d'affiliation programmés.
- wcusage_payoutschedule - Pour les demandes de paiement programmées.
- wcusage_cronjob - Pour vérifier quotidiennement la commission différée pour les commandes.
- wcusage_twicedaily_conversion_rates - Pour vérifier et mettre à jour les taux de conversion.
Méthodes pour vérifier WP-Cron
1. Utiliser un plugin de surveillance Cron
Des plugins comme WP-Crontrol ou Gestionnaire Cron avancé fournissent un moyen convivial d'inspecter et de gérer les travaux cron.
Les étapes :
- Installer le plugin:
- Allez dans le tableau de bord de WordPress.
- Naviguez jusqu'à Plugins > Ajouter un nouveau.
- Recherchez "WP-Crontrol" ou "Advanced Cron Manager".
- Installer et activer le plugin.
- Vérifier les événements Cron:
- Pour WP-Crontrol :
- Aller à Outils > Événements Cron dans le menu d'administration de WordPress.
- Examinez la liste des tâches cron programmées, leurs crochets, leurs calendriers et leurs prochaines heures d'exécution.
- Pour Advanced Cron Manager :
- Aller à Outils > Gestionnaire Cron.
- Consultez le tableau des événements pour obtenir des détails sur les tâches cron actives.
- Pour WP-Crontrol :
- Tester un job Cron:
- Dans WP-Crontrol, vous pouvez lancer manuellement un job cron en cliquant sur Exécuter maintenant à côté d'un événement.
- Vérifier si la tâche (par exemple, un message programmé) s'exécute comme prévu.
- Vérifier les erreurs:
- Recherchez les messages d'erreur ou les travaux qui sont bloqués (par exemple, pas d'heure de "Next Run" ou des échecs répétés).
- Veillez à ce que le programme cron corresponde à vos attentes.
Pourquoi utiliser cette méthode ?
Les plugins fournissent une interface visuelle qui facilite le débogage des problèmes sans toucher au code. Ils permettent également un déclenchement manuel et affichent l'état en temps réel.
2. Vérifier les journaux du serveur ou le débogage
Si WP-Cron ne fonctionne pas comme prévu, des problèmes de serveur ou un cron désactivé peuvent en être la cause.
Les étapes :
- Activer le débogage dans WordPress:
- Modifiez votre
wp-config.php
et ajouter :define('WP_DEBUG', true) ; define('WP_DEBUG_LOG', true) ; define('WP_DEBUG_DISPLAY', false) ;
- Cela permet d'enregistrer les erreurs dans
wp-content/debug.log
.
- Modifiez votre
- Surveiller l'activité de WP-Cron:
- Ajoutez ce qui suit à votre
wp-config.php
pour enregistrer les événements WP-Cron :define('WP_CRON_LOG', true) ;
- Vérifiez le journal de débogage pour les entrées liées au cron après avoir déclenché WP-Cron (par exemple, en visitant votre site).
- Ajoutez ce qui suit à votre
- Vérifier le Cron du serveur (si WP-Cron est désactivé):
- Si vous avez désactivé WP-Cron (via
define('DISABLE_WP_CRON', true) ;
enwp-config.php
) et mettre en place une tâche cron sur le serveur, vérifier la tâche cron dans le panneau de contrôle de votre serveur (par exemple, cPanel) ou dans la crontab :crontab -l
- Veillez à ce que la tâche cron exécute la commande suivante toutes les 5 à 15 minutes :
wget -q -O - https://yourdomain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
- Vérifier les journaux du serveur (par exemple,
/var/log/cron
) pour les erreurs d'exécution.
- Si vous avez désactivé WP-Cron (via
Pourquoi utiliser cette méthode ?
Le débogage et les journaux permettent d'identifier des problèmes plus profonds, comme une mauvaise configuration du serveur ou un WP-Cron désactivé.
3. Test avec une tâche programmée fictive
Créez un job cron de test pour confirmer que WP-Cron fonctionne.
Les étapes :
- Ajouter un job Cron de test:
- Ajoutez le code suivant à la section
functions.php
ou un plugin personnalisé :
- Ajoutez le code suivant à la section
add_action('my_test_cron_job', 'my_test_cron_function') ;
function my_test_cron_function() {
error_log('Test cron job ran at ' . current_time('mysql')) ;
}
if (!wp_next_scheduled('my_test_cron_job')) {
wp_schedule_event(time(), 'hourly', 'my_test_cron_job') ;
}
- Déclencher WP-Cron:
- Visitez votre site ou lancez manuellement
wp-cron.php
comme décrit précédemment.
- Visitez votre site ou lancez manuellement
- Vérifier l'exécution:
- Vérifier le
wp-content/debug.log
pour le message enregistré (assurez-vous queWP_DEBUG_LOG
est activée). - Il est également possible d'utiliser WP-Crontrol pour confirmer l'option
mon_test_cron_job
est programmé et en cours d'exécution.
- Vérifier le
Pourquoi utiliser cette méthode ?
Cette méthode confirme la fonctionnalité de WP-Cron de manière contrôlée, en isolant les problèmes de WP-Cron lui-même.
Problèmes courants et solutions
- WP-Cron ne se déclenche pas:
- Assurez-vous que votre site a un trafic suffisant pour déclencher WP-Cron. Pour les sites à faible trafic, envisagez de désactiver WP-Cron et d'utiliser une tâche cron de serveur.
- Vérifier si
define('DISABLE_WP_CRON', true) ;
enwp-config.php
. Si c'est le cas, assurez-vous qu'une tâche cron du serveur est configurée.
- Emplois bloqués ou retardés:
- Effacer les tâches bloquées en utilisant WP-Crontrol ou Advanced Cron Manager.
- Vérifiez les conflits entre les plugins en les désactivant temporairement.
- Restrictions du serveur:
- Certains hôtes bloquent
wp-cron.php
ou limiter l'exécution de cron. Contactez votre hébergeur pour confirmer.
- Certains hôtes bloquent
- Questions relatives à SSL:
- Si votre site utilise HTTPS, assurez-vous que la tâche cron du serveur utilise le bon protocole (
https://
).
- Si votre site utilise HTTPS, assurez-vous que la tâche cron du serveur utilise le bon protocole (
Meilleures pratiques
- Utiliser un serveur Cron pour les sites à fort trafic: Désactiver WP-Cron et mettre en place un job cron pour le serveur pour réduire la charge de travail lors des visites de pages :
- Contrôler régulièrement: Utilisez des plugins comme WP-Crontrol pour vérifier périodiquement l'état des crons.
- Maintenir les plugins à jour: Les plugins obsolètes peuvent provoquer des conflits ou des erreurs de cron.
- Test après modifications: Testez toujours les tâches cron après avoir modifié les plugins, les thèmes ou les paramètres du serveur.
Conclusion
Vérifier WP-Cron dans WordPress est simple avec des plugins comme WP-Crontrol ou des méthodes manuelles comme l'inspection de la base de données et le débogage. En suivant les étapes ci-dessus, vous pouvez confirmer que vos tâches planifiées fonctionnent comme prévu et résoudre les problèmes éventuels. Pour des performances optimales, envisagez de décharger WP-Cron sur une tâche cron du serveur, en particulier pour les sites avec un trafic important ou des tâches complexes.