Har du problem med att tidsinställda actions inte fungerar i WordPress?
WordPress har ett schemaläggningssystem som heter wp-cron, men det missar ibland en tidsinställd uppgift som att publicera schemalagda posts, skicka utlösta emails och så vidare. Korrekta cron-jobb som körs av operativsystemet på din server är ofta mer tillförlitliga.
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 website i WordPress har ett built-in schema som anropas wp-cron. Det utför tidskänsliga uppgifter som att kontrollera uppdateringar, publicera tidsinställda posts, automatiskt skapa regelbundna backups, skicka utlösta emails med mera.
Du kan läsa mer i vår guide om hur du viewar 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 tutorial 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 Step-by-Step guide till sökmotorsoptimering i WordPress eller kontrollera vår lista över vanliga WordPress error och hur man fixar dem.
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.
Syed Balkhi says
Hey WPBeginner readers,
Did you know you can win exciting prizes by commenting on WPBeginner?
Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
You can get more details about the contest from here.
Start sharing your thoughts below to stand a chance to win!
Paula Coombes says
Hello,
![:)](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E)
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 says
You’re welcome, glad our guide was helpful!
Administratör
Beth Alexander says
Is there a way to check that the new corn job running from Control Panel is working?
WPBeginner Support says
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 says
I am confused.
Woocommerce recommends setting the command as without the “?doing_wp_cron” part.
What is the difference?
WPBeginner Support says
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 says
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 says
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