Geçtiğimiz günlerde okuyucularımızdan biri, WordPress cron job sistemini kontrol panelinden görüntülemenin ve kontrol etmenin mümkün olup olmadığını sordu.
Cron, web sunucusunda zamanlanmış görevleri çalıştırmak için kullanılan bir teknolojidir. WordPress, güncellemeleri kontrol etme, zamanlanmış gönderileri yayınlama vb. gibi zamanlanmış görevleri gerçekleştirmesine olanak tanıyan kendi yerleşik cron’u ile birlikte gelir.
Bu makalede, WordPress cron işlerini nasıl görüntüleyeceğinizi ve kontrol edeceğinizi göstereceğiz.
WordPress Cron Nedir? Nasıl Çalışır?
Cron, zamanlanmış zamanda veya düzenli aralıklarla çalışacak komutlar için kullanılan teknik bir terimdir. Çoğu web sunucusu bunu sunucuyu korumak ve zamanlanmış görevleri çalıştırmak için kullanır.
WordPress, zamanlanmış görevleri gerçekleştirmesini sağlayan kendi cron sistemiyle birlikte gelir. Örneğin, güncellemeleri kontrol etme, eski yorumları çöp kutusundan silme, zamanlanmış gönderileri yayınlama vb.
WordPress eklentileri de sizin tarafınızdan belirlenen görevleri gerçekleştirmek için kullanabilir. Örneğin, WordPress yedekleme eklentiniz belirli bir zamanlamada otomatik olarak yedekleme oluşturmak için WordPress cron’u kullanabilir.
Ancak WordPress cron’un eklentiler tarafından sorumsuzca kullanılması web sitenizi yavaşlatabilir. Özellikle de paylaşımlı hosting kullanıyorsanız.
Bir eklenti sık sık yoğun kaynak gerektiren görevler gerçekleştiriyorsa, sorunu tanımlamanız ve düzeltmeniz gerekir.
Herhangi bir kod yazmadan WordPress cron sistemini nasıl görüntüleyeceğimize ve kontrol edeceğimize bir göz atalım.
WordPress Cron Sistemini Görüntüleme ve Kontrol Etme
Yapmanız gereken ilk şey WP Crontrol eklentisini kurmak ve etkinleştirmektir. Daha fazla ayrıntı için, bir WordPress eklentisinin nasıl kurulacağına ilişkin adım adım kılavuzumuza bakın.
Etkinleştirmenin ardından, cron ayarlarını kontrol etmek için Araçlar ” Cron Etkinlikleri sayfasını ziyaret etmeniz gerekir.
WordPress cron sistemini kullanarak sitenizde çalışması planlanan tüm cron etkinliklerinin bir listesini göreceksiniz.
İlk sütunda, cron’u çalıştıran kancanın adını göreceksiniz.
Kanca isimleri genellikle bu özel etkinliğin ne yaptığına dair bir ipucu verir.
Varsayılan WordPress kancalarının çoğu wp_ önekiyle başlar, örneğin wp_update_plugins, wp_update_themes vb.
WordPress eklentileriniz kancaları için kendi öneklerini kullanabilir veya kullanmayabilir. Örneğin, All in One SEO aioseo_ ön
ekini kullanır.
Ayrıca bir cron’un bir sonraki çalışmasının ne zaman olacağını ve bir sonraki çalışma arasındaki zaman aralığını da görebilirsiniz.
Listedeki son sütun bir cron olayını düzenlemenizi, silmenizi veya çalıştırmanızı sağlar.
Önemli: Cron olaylarıyla ne yaptığınız konusunda çok dikkatli olun ve varsayılan bir WordPress cron olayını asla silmeyin.
Şimdi, oldukça yoğun kaynak kullanan bir WordPress eklentisi tarafından oluşturulan bir cron olayı gördüğünüzü varsayalım.
İlk olarak, eklentinin ayarlarını kontrol ederek oradan kontrol etme seçeneği olup olmadığını görmelisiniz. Eğer yoksa, değiştirmek için cron olayının yanındaki ‘Düzenle’ bağlantısına tıklayabilirsiniz.
Düzenle düğmesine tıklandığında aşağıdaki ‘Cron Olayını Değiştir’ sekmesi açılacaktır.
Burada, etkinliğin ne sıklıkta çalışmasını istediğinizi değiştirebilirsiniz.
İşiniz bittiğinde, ayarlarınızı kaydetmek için ‘Cron Olayını Değiştir’ düğmesine tıklayın.
WordPress’te Kendi Cron Olaylarınızı Ekleme
WP Crontrol eklentisi WordPress’e kendi cron işlerinizi eklemenizi kolaylaştırır. Basitçe Araçlar ” Cron Etkinlikleri sayfasını ziyaret edin ve ‘Cron Etkinliği Ekle’ sekmesine gidin.
İlk olarak, cron etkinliğiniz için bir kanca adı sağlamanız gerekir. Kanca adlarında boşluk veya özel karakterler bulunamaz.
Çalıştırmak istediğiniz fonksiyon argüman gerektiriyorsa, bu argümanları sağlayabilirsiniz.
Ardından, WordPress’e cron’u bir sonraki sefer ne zaman çalıştıracağını söylemeniz gerekir. Cron’u hemen tetikleyecek olan ‘şimdi’, ‘yarın’, ‘+2 gün’ veya ’25-02-2020 12:34:00′ girebilirsiniz.
Son olarak, bir program seçmeniz gerekir. Saatlik, günde iki kez, günlük veya haftada bir kez seçebilirsiniz. Ayrıca tekrarlanmayan etkinlik de yapabilirsiniz.
İşiniz bittiğinde, değişikliklerinizi kaydetmek için ‘Cron Etkinliği Ekle’ düğmesine tıklayın.
Cron etkinliğinizin artık etkinlikler listesinde görüneceğini fark edeceksiniz.
Ancak, şu anda hiçbir şey yapmıyor çünkü WordPress’e bu olay tetiklendiğinde ne yapacağını söylemediniz.
Kancanızı ve cron kancası tetiklendiğinde çalışan bir fonksiyon eklemeniz gerekecektir.
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');
}
Kendi e-posta adresinizi kullanmayı unutmayın.
Bu işlev, cron çalıştığında size bir test e-postası gönderir. Artık sayfayı yukarı kaydırabilir ve test etmek için cron etkinliğinizin yanındaki ‘Şimdi Çalıştır’ bağlantısına tıklayabilirsiniz.
Not: cron kullanmak orta seviye programlama ve WordPress geliştirme becerileri gerektirir. Bu becerilere sahip değilseniz, bir WordPress geliştiricisi tutmanızı öneririz.
Umarız bu makale WordPress cron işlerini nasıl görüntüleyeceğinizi ve kontrol edeceğinizi öğrenmenize yardımcı olmuştur. WordPress’i hızlandırmak ve performansı artırmak için nihai kılavuzumuzu veya en iyi WordPress güvenlik eklentileri uzman seçimlerimizi de görmek isteyebilirsiniz.
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
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
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
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.
Yönetici
Matt K
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
It would depend on the specific chron job, if you reach out to the plugin’s support they should be able to assist
Yönetici
Heinz
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
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/
Yönetici
Andre Hesdahl
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
Thanks for the article. Interesting to see the number of plugins that have cron jobs running often. Great peak under the hood plugin…
David
How can i configure the cron to every half hour?
hazel beaver
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
Does this work in Multi-site? Can one control crons for all instances in a multisite scenario?
Oleg
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
how can i add Recurrence like five minutes, ten minutes
Ahmad Sayeed
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
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
Is that ‘my_task_hook’ cron hook rightly mentioned there at line 2 or should that rather be changed to ‘wpb_custom_cron’?
Matt
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
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
Hi
When I am going to refresh the page of WP-Cron Events from wordpress admin then only run the event.