WordPress innehåller ett inbyggt schemaläggningssystem som kallas WP-Cron, som ansvarar för att hantera schemalagda uppgifter som att publicera inlägg vid en viss tidpunkt, skicka utlösta e-postmeddelanden eller köra automatiska säkerhetskopior.
WP-Cron är bekvämt och fungerar bra för många webbplatser, men det har sina begränsningar. Ett vanligt problem är att den ibland missar schemalagda uppgifter, särskilt på webbplatser med låg trafik.
Ett mer tillförlitligt alternativ är att ställa in korrekta cron-jobb som hanteras av din dostawca hostinguivers server. Dessa cron-jobb är oberoende av webbplatsbesök och körs enligt ett exakt schema, vilket säkerställer att uppgifter utförs konsekvent och i tid.
På WPBeginner förlitar vi oss på korrekta cron-jobb som konfigureras direkt på vår server för att säkerställa att alla våra schemalagda uppgifter utförs i tid, och detta tillvägagångssätt har konsekvent gett oss utmärkta resultat. Det innebär att vi inte behöver oroa oss för förseningar eller missade uppgifter, inte ens under perioder med låg trafik eller hög serveraktivitet.
I den här artikeln kommer vi att visa dig hur du enkelt inaktiverar wp-cron i WordPress och täcker två sätt som du kan ställa in korrekta cron-jobb.
Varför inaktivera wp-cron?
Din WordPress-webbplats har ett inbyggt schemaläggningssystem som heter wp-cron. Det utför tidskänsliga uppgifter som att söka efter uppdateringar, publicera schemalagda inlägg, automatiskt skapa regelbundna säkerhetskopior, skicka utlösta e-postmeddelanden med mera.
Du kan läsa mer i vår przewodnik om hur du visar och kontrollerar WordPress cron-jobb.
Problemet är att WordPress bara uppmanas att kontrollera om det finns tidsinställda jobb när någon besöker din website. Det här fungerar bra för de flesta webbplatser, men ibland kan det orsaka problem för mindre webbplatser.
Om din site t.ex. har låg trafik kanske dina tidsinställda posts inte publiceras i tid. Om din website får mycket trafik kommer wp-cron att kontrolleras ofta, vilket kan påverka din websites prestanda.
Nu, om du bara vill fixa det saknade schemalagda posts error, kan du använda den gratis plugin Missed Scheduled Publisher. Men om du vill lösa alla issues med action scheduler, behöver du ett riktigt cron-jobb.
Ett riktigt cron-jobb körs av operativsystemet på din web server, ej av WordPress. You kan ställa in det för att kontrollera tidsinställda uppgifter på ett mer tillförlitligt sätt. Som standard har WordPress inte tillgång till att ställa in detta på servernivå, men du kan enkelt göra det genom att följa vår tutorial.
Med det sagt, låt oss ta en titt på hur man enkelt inaktiverar wp-cron och ställer in ett korrekt cron-jobb. Här är vad vi kommer att täcka i denna tutorial:
Inaktivera wp-cron i WordPress
För att inaktivera wp-cron måste du edit wp-config.php, som är en core WordPress konfigurationsfil. Den är placerad i din WordPress-webbplats rot folder, och du måste använda en FTP-klient eller filhanteraren i din webbhotell kontrollpanel.
Den här filen innehåller mycket känslig information, och om du gör fel ändringar kan din WordPress site gå sönder. Vi rekommenderar att du gör en backup av filen först, för säkerhets skull. Du kan lära dig hur genom att följa vår guide om hur du redigerar wp-config.php i WordPress.
Du måste klistra in följande kod i filen wp-config.php precis före raden som säger: ”That’s all, stop editing! Trevlig bloggning”:
define('DISABLE_WP_CRON', true);
Det är så här det ska gilla att se ut.
Efter det, save filen och uploada den tillbaka till your website.
WordPress kommer inte längre att utlösa wp-cron när någon besöker din website.
Metod 1: Konfigurera ett korrekt Cron-jobb på din WordPress server
Nu måste du ställa in ett korrekt cron-jobb för att runna dina tidsinställda uppgifter. Hur du gör detta varierar beroende på de tools som tillhandahålls av din WordPress hosting provider.
Det enklaste sättet att ställa in cron-jobb är att använda cPanel, en populär panel för kontroll av webbplatser som ingår i många planer för webbhotell, inklusive Bluehost. Vi kommer att använda Bluehosts cPanel i den här tutorialen.
Note: Vissa webbhotell använder inte cPanel, och vissa kanske inte ens tillåter dig att skapa cron-jobb. Om du är osäker bör du kontakta din hosting provider eller konsultera deras support documentation. Du kan alltid använda en cron-tjänst från tredje part (kontrollera metod 2).
När du loggar in på ditt webbhotell konto och head till ”Websites” page, växla till ”Advanced” tabs från toppen.
Här rullar du ner till sektionen ”Cron Jobs” och klickar på knappen ”Hantera” bredvid den. Tänk på att positionen för denna section kan variera beroende på ditt hosting provider.
Då kommer du till en new page där du kan skapa nya cron-jobb.
Oroa dig inte för den varning du kommer att se om att du behöver goda kunskaper om kommandon i Linux. Det är bara ett kommando som behövs, och vi ska visa you exakt vad det är under.
Om du behöver kan du ändra den email address där aviseringar om cron-jobb ska skickas. Standardadressen är den som du använde när du registrerade dig för ditt webbhotell, och det fungerar bra på de flesta websites.
Låt oss nu rulla ner till sektionen ”Add New Cron Job” och ställa in ett cron-jobb.
Först måste du bestämma hur ofta cron-jobbet ska runas. Detta kan vara vad du gillar, men vi rekommenderar 30-minutersintervaller.
You will need to click the ’Common Settings’ button and select a time interval from the dropdown. Två gånger per timme” är ett bra val för de flesta webbplatser om du ej är säker.
Nu kan du enter kommandot som kommer att be WordPress att runna sina tidsinställda uppgifter. Du måste klistra in följande kod i fältet ”Kommando”:
wget -q -O - https://example.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Se till att du ersätter ”example.com” med din egen website’s URL.
När du har gjort det klickar du på knappen ”Add New Cron Job” och du kommer att se det nya cron-jobbet addat till listan under.
WordPress kommer nu att kontrollera och köra tidsinställda uppgifter var 30:e minut istället för när någon besöker din website.
Metod 2: Setting Up a Proper Cron Job Using a Third-Party Service
Om din plan för webbhotell inte erbjuder ordentliga cron-jobb, eller om de är svåra att konfigurera, kan du använda en cron-tjänst från tredje part istället.
Dessa är dedikerade tjänster som tillåter dig att ställa in cron-jobb med hjälp av ett enkelt gränssnitt. Här är några av de bättre:
- EasyCron har en gratis plan som är obligatorisk för månatlig förnyelse
- cron-job.org är en gratis tjänst
- Cronitor är gratis om du bara behöver ett cron-jobb
- SetCronJob erbjuder betalda planer från $ 10 / år
För denna tutorial kommer vi att använda EasyCron eftersom det är lätt att använda, och den gratis planen är lämplig för de flesta nybörjaranvändningsfall.
När du har skapat ett gratis account kan du skapa ett new cron-jobb genom att clicka på knappen ”+ Cron Job” till vänster.
Detta kommer att visa vyn ”Skapa Cron-jobb”. Först måste du klistra in följande URL i fältet ”URL to call”:
https://example.com/wp-cron.php?doing_wp_cron
Se till att du ersätter ”example.com” med URL:en till din egen site.
Efter det ska du välja ”Var 30:e minut” i rullgardinsmenyn ”När ska körningen utföras”. När du är slutförd, glöm inte att klicka på knappen ”Create Cron Job” för att lagra dina Settings.
Det nya cron-jobbet läggs till i listan och run wp-cron på din website var 30:e minut.
Bonus: Auto schemalägga dina blogginlägg i WordPress
När du har ställt in rätt cron-jobb kommer alla dina tidsinställda uppgifter på bloggen WordPress att utföras utan problem. Du kan till och med schemalägga dina blogginlägg automatiskt.
Detta kommer att tillåta dig att välja en artikel att publicera slumpmässigt på ditt förvalda publiceringsdatum. För att göra detta måste du installera och aktivera PublishPress Planner plugin.
Efter aktivering, besök Planner ” Settings page och växla till ”Content Calendar” tabs från högst upp. Här kontrollerar du boxen ”Tidsinställd” bredvid alternativet ”Statusar som ska visa publiceringstid”.
Efter det måste du välja ett tidsformat för publiceringen av ditt post och klicka på fältet bredvid alternativet ”Standardpubliceringstid för objekt som skapats i kalendern”.
Detta öppnar en prompt där du kan välja den specifika tiden, timmen och minuten för dina tidsinställda poster som ska publiceras dagligen. För idéer kan du se vår tutorial om när är den bästa tiden att publicera en blogg.
Klicka sedan på knappen ”Save Changes” för att lagra dina inställningar.
Nu kan du head till block editor där du kan välja alternativet ”Tidsinställd” från dropdown-menyn ”Inläggsstatus”.
För mer information, se vår tutorial om hur du automatiskt schemalägger dina WordPress blogginlägg.
Vi hoppas att denna poradnik hjälpte dig att lära dig hur du inaktiverar wp-cron i WordPress och ställer in korrekta cron-jobb. Du kanske också vill se vår poradnik om hur du lägger till en adminanvändare i WordPress med FTP och vår przewodnik för nybörjare om hur du visar och kontrollerar cron-jobb.
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Paula Coombes
Hello,
I’d just like to say thank you so much for this straightforward help.
I used Method 1.
I’ve carried out your instructions after reading everything at least 3 times and, for the first time ever, my WP health state has no problems!!
Thanks again.
WPBeginner Support
You’re welcome, glad our guide was helpful!
Administratör
Beth Alexander
Is there a way to check that the new corn job running from Control Panel is working?
WPBeginner Support
To check a cron job, we would recommend taking a look at our article below!
https://www.wpbeginner.com/plugins/how-to-view-and-control-wordpress-cron-jobs/
Administratör
Anita Richards
I am confused.
Woocommerce recommends setting the command as without the “?doing_wp_cron” part.
What is the difference?
WPBeginner Support
Unless we hear otherwise, the ?doing_wp_cron allows for some background processing that without would not be able to do.
Administratör
Anita Richards
Ok, that makes some sense. I guess that it must be the difference between the WP and Woo processes being run?
I ended up creating two corn jobs in cPanel one with and one without. Is that going to cause problems?
WPBeginner Support
It should be a slightly different method to achieve the same result.
It would depend on your site’s size for how multiple cron jobs would affect your hosting site, as your site becomes larger it may become an issue