Depuis quelques temps, WordPress intègre un outil de détection de « Santé du site » .
Celui-ci m’indiquait que des événements planifiés avaient échoué (avec l’identifiant de la tâche en question inscrit).
WordPress n’intégrant plus de suivi des tâches planifiées (Cron task), il faut par conséquent installer l’extension « WP Crontrol » pour accéder à la liste des tâches planifiées.
Une fois ceci fait, on va dans « Outils » > « Événements Cron » et on regarde l’identifiant en question.
Pour ma part, j’avais 4 événements corrompus.
J’avais également des erreurs de type « Warning: A non-numeric value encountered in /home/~/plugins/wp-crontrol/src/event.php on line 389 » ainsi que « Warning: A non-numeric value encountered in /home/~/plugins/wp-crontrol/src/event.php on line 389″
Et d’autres avec gmdate().
Bref, un sacré bordel…
(Après vérification, il s’avère que ces erreurs sont dues à des fonctions et variables liées au temps écoulé et de la manière dont elles sont stockées).
En effet, mes erreurs de tâches planifiées étaient marquées comme manquées depuis… 52 années et 9 mois !
HAHAHAHA ! Ha oui quand même !
En essayant de simplement « supprimer » la tâche obsolète, j’ai eu le droit à un magnifique : « L’évènement cron 1439927531 est introuvable. »
Ça commence bien.
Et en essayant de le modifier : « L’évènement que vous essayez de modifier n’existe pas. »
Super… Et maintenant je fais quoi ?
Et impossible de démarrer la tâche pour la forcer évidemment puisqu’elle n’existe pas mais qu’elle est quand même là… *facepalm*
Après de nombreuses recherches infructueuses, un éclair de génie ! Et si je créais une tâche planifiée avec WP Crontrol et que je mettais le même nom (Crochet/Hook) que celui répertorié pour l’écraser ?
J’ai donc ajouté l’événement et l’entrée dans la liste des tâches en attente avec le nom en question était toujours présent. Ce qui est rassurant c’est de ne pas avoir 2 entrées avec le même nom.
SAUF QUE, maintenant au lieu de n’avoir que l’option « Supprimer » (Delete) (qui ne marche pas je rappelle), j’ai l’option « Supprimer tous les 2 » !
Et là, miracle ! La suppression fonctionne ! \o/
Une fois ces artefacts foireux supprimés, plus aucun message non plus d’erreur sur des fichiers php à la c(r)on.
Voilà voilà !