Senast frågade en av våra läsare om det var möjligt att se och kontrollera WordPress cron-jobbsystemet i adminpanelen.
Cron är en teknik för att run tidsinställda uppgifter på web server. WordPress levereras med sin egen built-in cron som tillåter den att utföra tidsinställda uppgifter som att kontrollera uppdateringar, publicera schemalagda posts etc.
I den här artikeln visar vi dig hur du kan viewa och kontrollera WordPress cron-jobb.
Vad är WordPress Cron? Hur fungerar det?
Cron är en teknisk term som används för kommandon som ska köras på tidsinställd tid eller med regelbundna intervall. De flesta web servrar använder det för att underhålla servern och run tidsinställda uppgifter.
WordPress har ett eget cron-system som tillåter utförandet av tidsinställda uppgifter. Till exempel kontrollera uppdateringar, ta bort gamla comments från trash, publicera tidsinställda posts och så vidare.
Tillägg tillWordPress kan också använda det för att utföra uppgifter som anges av dig. Till exempel kan ditt plugin för WordPress backup använda WordPress cron för att automatiskt skapa säkerhetskopior enligt ett visst schema.
Men om tillägg använder WordPress cron på ett oansvarigt sätt kan det göra din website långsammare. Speciellt om du har ett delat webbhotell.
Om ett plugin ofta utför resurskrävande uppgifter måste du identifiera problemet och fixa det.
Låt oss ta en titt på hur du kan viewa och kontrollera WordPress cron-systemet utan att skriva någon kod.
View och control av WordPress Cron-system
Det första du behöver göra är att installera och aktivera pluginet WP Crontrol. För mer detaljer, se vår steg-för-steg guide om hur du installerar ett plugin för WordPress.
Efter aktivering måste du besöka Tools ” Cron Events page för att kontrollera cron-inställningar.
You will see a list of all cron events scheduled to run on your site using the WordPress cron system.
I den första Column ser du namnet på åtgärds-hooken som runar cron.
Namnen på åtgärds-hook ger dig vanligtvis en ledtråd till vad viss händelse gör.
De flesta åtgärds-hook som är standard i WordPress börjar med prefixet wp_, gillar wp_update_plugins, wp_update_themes etc.
Your WordPress plugins använder kanske eller ej egna prefix för sina åtgärds-hooks. All in One SEO använder till exempel prefixet aioseo_
.
You will also get to see when a cron will run next, and the time interval between next run.
I den sista colonnen på listan allow you to edit, delete, or run a cron event.
Viktigt: Var mycket försiktig med vad du gör med cron-händelser och ta aldrig bort en standard WordPress cron-händelse.
Låt oss nu anta att du ser en cron händelse som skapats av ett WordPress plugin som är ganska resource intensivt.
Först bör du kontrollera pluginets inställningar för att se om det finns ett alternativ att styra det därifrån. Om det inte finns det, kan du klicka på länken ”Edit” bredvid cron-händelsen för att ändra den.
Om du klickar på knappen Edit öppnas tabben ”Ändra Cron Event” under.
Här kan du ändra hur ofta du vill att händelsen ska runna.
När du är klar klickar du på knappen ”Modify Cron Event” för att lagra dina Settings.
Lägga till dina egna Cron-händelser i WordPress
WP Crontrol plugin gör det enkelt att add to your egna cron-jobb till WordPress. Besök bara Tools ” Cron Events page och rulla ner till ”Add Cron Event” tabs.
Först måste du ange ett namn på åtgärds-hooken för din cron-händelse. Namnet på åtgärds-hooken får inte innehålla mellanslag eller specialtecken.
Om den funktion som du vill utföra kräver argument kan du ange dessa argument.
Därefter måste du tala om för WordPress när cron ska köras nästa gång. You can enter ’now’ which will trigger cron immediately, ’tomorrow’, ’+2 days’, or ’25-02-2020 12:34:00′.
Slutligen måste du välja ett schema. You can select hourly, twice daily, daily, or once a week. You can also make it non-repeating event.
När du är klar klickar du på knappen ”Add Cron Event” för att save your changes.
You will notice that your cron event will now appear in the events list.
Men för närvarande gör den ingenting eftersom du inte har sagt till WordPress vad som ska göras när denna händelse utlöses.
You will need to add your åtgärds-hook and a function that runs when the cron hook is triggered.
add_action( 'wpb_custom_cron', 'wpb_custom_cron_func' );
function wpb_custom_cron_func() {
wp_mail( 'you@example.com', 'Automatic email', 'Automatic scheduled email from WordPress to test cron');
}
Glöm inte att använda din egen email address.
Denna funktion skickar helt enkelt ett test email till you när cron körs. You can now scroll up the page and click on the ’Run Now’ link next to your cron event to test it out.
Note: Att använda cron är obligatoriskt för att kunna programmera och utveckla WordPress på mellannivå. Om du inte har dessa kunskaper rekommenderar vi att du anlitar en utvecklare av WordPress.
Det var allt, vi hoppas att den här artikeln hjälpte dig att lära dig hur du kan view och control WordPress cron-jobb. You may also want to see our ultimate guide to speed up WordPress and boost performance or our expert picks of the best WordPress security plugins.
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!
Paul Barrett says
We run cron at server level because wp-cron overloads teh server. There’s is nothing on our site that is so time-critical the jobs need to running frequently. If we set the frequency to say daily, would WordPress have a problem?
WPBeginner Support says
It would heavily depend on what is being done on the site and when. We do not have a specific recommendation for what can be delayed to that extent.
Administratör
Matt K says
When I go to change the the recurrence on the Hooks, they just get changed back. Something isn’t right. Do I need to disable WP crons in wp-config.php first?
WPBeginner Support says
It would depend on the specific chron job, if you reach out to the plugin’s support they should be able to assist
Administratör
Heinz says
Can I deactivate or even delete WP Control plugin in after having set a cron job, so I don’t have too many plugins running and slow down the website?
WPBeginner Support says
Yes, as long as you’ve used one of the default schedules (such as daily). If you’ve added a custom schedule any event that uses it will run once more but won’t repeat after that.
The plugin should not cause a slowdown of your site, for a better understanding of how WordPress plugins affect your site you may want to take a look at our article here:
https://www.wpbeginner.com/opinion/how-many-wordpress-plugins-should-you-install-on-your-site/
Administratör
Andre Hesdahl says
I am a newbee with WordPress and don’t know where to put (or how to execute) the code:
add_action( ’wpb_custom_cron’, ’wpb_custom_cron_func’ );
function wpb_custom_cron_func() {
wp_mail( ’you@example.com’, ’Automatic email’, ’Automatic scheduled email from WordPress to test cron’);
}
Jeff says
Thanks for the article. Interesting to see the number of plugins that have cron jobs running often. Great peak under the hood plugin…
David says
How can i configure the cron to every half hour?
hazel beaver says
When I check the cron schedule the dates shown in the ’next run’ column are all in the past. Does that mean they are not running?
In the past I think I added ’true’ in the wp config file to stop automatic wp updates from breaking my site…. could this be the cause?
Janson says
Does this work in Multi-site? Can one control crons for all instances in a multisite scenario?
Oleg says
Great article, but no need for
if ( ! wp_next_scheduled( ’wpb_custom_cron’ ) ) {
wp_schedule_event( time(), ’hourly’, ’my_task_hook’ );
}
this part is done in the plugin,
beny salim says
how can i add Recurrence like five minutes, ten minutes
Ahmad Sayeed says
I tested you given example. It works like a superman. But please give us an example to send parameter. I have added the function while creating the even. But I don’t know how to use them on PHP function.
Please give us an example
Sunny says
My website is coming up with a long wp cron string after my URL and I cant get rid of it. Any thoughts?
?doing_wp_cron=1499261576.8675799369812011718750 comes up after my url and its making me look really spammy. Your insight would be appreciated.
Aniket Ashtikar says
Is that ’my_task_hook’ cron hook rightly mentioned there at line 2 or should that rather be changed to ’wpb_custom_cron’?
Matt says
Do you know if its possible to visit a link in the wp-admin area? I have a plugin that adds admin features to my wordpress site but I really want this scheduled to happen every 24 hours. I have the link but obviously am required to be logged in.
Pam M says
Do you need that first if statement shown in the sample code? It looks like it would override the ability to schedule and unschedule in the WP Crontrol plugin.
Your example worked nicely when I scheduled the job in the plugin and tested it with the Run Now option. I’ll see if I get an email at the scheduled time too.
Thanks for the helpful background info.
Nigam says
Hi
When I am going to refresh the page of WP-Cron Events from wordpress admin then only run the event.