Ça fait des mois que j’ai un problème avec WordPress qui ne me publie pas tous les billets que je planifie. Avec mon ancien hébergeur, j’avais trouvé une solution (que j’ai oubliée) et qui consistait à bidouiller le cron du serveur. Suite au changement d’hébergement, je me suis donc retrouvé avec ce même problème et deux billets non publiés la semaine dernière. Donc, j’ai pris le taureau par les cornes et j’ai fait quelques recherches pour résoudre cette erreur de « planification manquée ».
La première solution (trouvée via le Blog Chine) qui semblait fonctionner pour les versions à partir de la 2.9, mais qui dans mon cas n’a pas marché, est d’aller modifier le time-out du fichier cron.php qui se trouve dans le dossier wp-includes/cron.php . Ouvrons donc ce fichier et modifions la valeur timeout (en gras ci-dessous) pour la passer de 0.01 à 10 secondes :
$cron_request = apply_filters( ‘cron_request’, array(
‘url’ => site_url( ‘wp-cron.php?doing_wp_cron=’ . $doing_wp_cron ),
‘key’ => $doing_wp_cron,
‘args’ => array( ‘timeout’ => 0.01, ‘blocking’ => false, ‘sslverify’ => apply_filters( ‘https_local_ssl_verify’, true ) )
On passe à 10 secondes.
$cron_request = apply_filters( ‘cron_request’, array(
‘url’ => site_url( ‘wp-cron.php?doing_wp_cron=’ . $doing_wp_cron ),
‘key’ => $doing_wp_cron,
‘args’ => array( ‘timeout’ => 10, ‘blocking’ => false, ‘sslverify’ => apply_filters( ‘https_local_ssl_verify’, true ) )
La planification d’un billet test ayant échoué, j’ai dû approfondir mes recherches et je suis tombé sur mon sauveur, un plugin appelé wp-missed-schedule. Il s’est avéré tout à fait fonctionnel et comme ce n’est qu’une extension à installer, pas de prise de tête de fichiers à modifier, on installe l’extension, on l’active et c’est plié.
Comme quoi, souvent avec WordPress, il y a un plugin pour chaque solution.