Om man vill schemalägga uppgifter i Unix/Linux-baserade system så använder man något som heter Cron. På samma sätt har WordPress en egen lösning för schemaläggning, som heter WP-Cron.
WP-Cron ser till att WordPress letar efter uppdateringar, publicerar schemalagda inlägg och utför diverse andra uppgifter (t ex kontrollerar trasiga länkar med Broken Link Checker).
Fördelen med WP-Cron är att det funkar överallt. Det är långt från alla webbhotell och servermiljöer som tillåter schemaläggning av uppgifter hur som helst. Nackdelen är att WP-Cron kör varje gång en sida laddas i WordPress, vilket kan orsaka onödig belastning (läs: ge en långsammare hemsida).
Det är dock enkelt att rätta och förbättra schemaläggningen i WordPress.
– Inaktivera schemaläggning via WP-Cron
Börja med att inaktivera WP-Cron, genom att lägga in följande kodrad i wp-config.php.
define('DISABLE_WP_CRON', true);
– Schemalägg via riktiga cron istället
Om du kör WordPress på en Linux-baserad server (vilket du bör göra) och har åtkomst till servern via SSH, så kan du starta crontab (en redigerare för cron) via terminalen med följande kommando.
crontab -e
När du har valt en redigerare (välj t ex ”nano”), lägg in nedanstående rad längst ner i filen.
0 * * * * cd /hemkatalog-för-min-hemsida; php -q wp-cron.php
– Om din leverantör har stöd för WP-CLI
Om ditt webbhotell/serverleverantör har stöd för WP-CLI (vilket de bör ha) så är det bättre att köra cron via WP-CLI. Lägg då in denna rad i crontab istället:
0 * * * * wp cron event run --due-now --path=/hemkatalog-för-min-hemsida/ --quiet
Ersätt ”/hemkatalog-för-min-hemsida” med den fullständiga sökvägen till hemkatalogen för din hemsida, t ex /var/www/minhemsida.se (från roten). Spara och stäng till sist filen.
Därefter kör WP-Cron en gång varje heltimme, via PHP direkt på servern. Det går att köra WP-Cron med anrop mot webbplatsen t ex via wget, men då påverkas webbservern/besökare i onödan.
Att schemalägga uppgifter via cron är även möjligt att få till via kontrollpanelen hos vissa webbhotell. Om du inte känner dig bekväm med SSH/terminal, använd det istället.