WP-Crontrol, un crontab pour WordPress & le mode maintenance
0Cron pour WordPress
Accéder à un ordonnanceur d’exécution de script (ou autre chose) pour wordpress. Je n’ai pas trouvé beaucoup de documentation en français sur le web, dommage l’ordonnancement est tellement pratique pour permettre la création de taches panifiées. Aussi bien coté back office pour de la sauvegarde de bdd ou du site en lui même (construction de miroirs par exemple) ou quand bien même l’envoi de rapport de stats, l’exécution de script perso, etc…
Très simple sur WordPress ! Des solutions annexes et décentralisées existent comme OnLineCronJob ou Cronoo. Mais je préfère centraliser les choses pour simplifier la sauvegarde bdd et php, un plugin permet l’ordonnancement de scripts php simplement. Il s’agit de WP-Crontrol, vous trouverez le site de l’éditeur ici. Attention toutefois, il ne s’agit pas réellement de vrai tâches planifiées comme sur un serveur SSH, mais d’une ‘émulation’ moins précise, c’est un peu le terme qui pourrait être utilisé. Tout dépend de votre besoin, s’il ne nécessite pas une extrême rigueur quant au moment de l’exécution des scripts, je vous conseille de rester pour le moment sur l’hébergement fournit grâce à votre FAI (Free par exemple) pour des soucis de coûts. Si les besoins de précision se font nécessaires et obligatoires, tentez un service externalisé ou bien un serveur ‘pro’. Ces derniers sont très chers quant à la possibilité d’avoir un accès SSH et donc aux crons car très gourmands en ressources et donc cher. Ceci dit, je le trouve largement suffisant et fiable pour une utilisation basique, celui ci étant déjà utilisé pour la synchronisation des mises a jour de plugins, core et thèmes de WordPress. L’installation du plug in ouvre la possibilité de gérer une partie existante (les maj par exemple) et à venir (vos scripts), pas l’installation en elle même de la fonctionnalité d’ordonnancement.
Question réglages
Allez tout d’abord sur le menu ‘Réglage’ de votre interface d’administration WordPress, puis ‘Crontrol’,définissez le/les laps de temps que vous souhaitez avoir entre chaque exécution de script, rien de difficile remplissez les champs comme indiqué. Puis allez dans l’onglet ‘Outils’ de votre interface d’administration Wordpress, ‘Crontrol’, et cliquez que ‘Add a new php entry’ et enfin saisissez un nom pour identifier votre cron. Puis l’intervalle d’exécution du script (celui que vous avez créé dans l’onglet ‘Réglage’). Un conseil, vous pouvez soit insérer la totalité du code à exécuter ou bien faire un simple ‘include’ de votre script php. C’est, pour ma part, la solution que je recommande pour travailler plus simplement sur les scripts et ne pas alourdir la base de code qui assurera de bonnes performances.
Création de votre cron, ici la simple exécution d’un echo vide :
Ajout de votre cron à la liste :
Pour revenir à WP-Crontrol, vous devez juste savoir qu’en cas de mauvaise manip, les ‘crons’ sont stockés sur votre base de données associée à votre WordPress. Ce n’est donc pas un fichier gérer comme sur unix avec la commande ‘crontab -e’ pour y accéder et modifier son contenu. La table concernée est ‘wp_options’, faites donc une simple recherche sur le champ ‘option_name’. En cas d’erreur de lancement / création de cron et que vous ne puissiez plus accéder à la suppression de celui ci (un bug lié au nommage du cron, n’utilisez pas de cote simple / apostrophe dans son appellation cela vous évitera des soucis lors de sa suppression).
Lancez vôtre requête pour rechercher vos cron dans vôtre base :
select * from wp_options where option_name like '%cron%';
Vous pourrez constater en base dans ‘wp_options’ la ligne concernant votre cron :
Dans le détail de cette ligne on voit bien notre code inséré ‘echo “”;’ :
Le mode maintenance
Lors d’une mise à jour automatique sur WordPress, qu’il s’agisse d’un thème, d’un plugin ou du core, c’est toujours très aléatoire et risqué. Cela ne dépend fortement de la qualité de votre hébergeur (si vous êtes comme moi, avec Free c’est juste impossible). Du coup la nécessité de la compréhension du core WordPress est nécessaire, astuce découverte ici, explique que le mode maintenance génère un fichier .maintenance à la racine du site web, suivez ses bon conseilles.