WordPress Cron Job Oluşturma
WordPress cron job oluşturmak yani zamanlanmış istekler gerçekten çok kolaylaştırılmış. Bir senaryo üzerinden ilerleyelim ki anlatım kolay olsun. WordPress için bir eklenti kodladığınızı düşünelim. Belirlenen zamanda bir kod parçasının çalışması gerekiyor. Bu kod parçasının işlevi, veritabanındaki bir sayıya her gün +1 eklesin.
Yazdığım kodların ne işe yaradığını, kendinize göre özelleştirebilmeniz için açıklayacağım.
WP-Cron Zamanlanmış Kod Ekleme
if ( ! wp_next_scheduled( 'belirlemek_istediginiz_cron_ismi' ) ) {
wp_schedule_event( time(), 'cron_calisma_zamani', 'belirlemek_istediginiz_cron_ismi' );
}
Efenim üstte ki kodumuzda, eğer “belirlemek_istediginiz_cron_ismi” adında bir cron yoksa, tanımla komutunu girmiş olduk. Bu değeri kendi vermek istediğiniz isimle değiştirin. Şimdi gelelim bu zamanlanmış görevin ne zaman çalışacağına.
İşin çalışma zamanını wp_schedule_event
fonksiyonunda 2. parametre olarak gireceğiz. Zaten üstteki kodda cron_calisma_zamani
olarak belirttim.
add_filter( 'cron_schedules', 'cron_calisma_zamani_callback');
function cron_calisma_zamani_callback()
{
return array(
'her_dakika' => array(
'interval' => 60,
'display' => 'Her dakika'
),
'her_saat' => array(
'interval' => 60 * 60,
'display' => 'Her saat'
),
'her_gun' => array(
'interval' => 60 * 60 * 24,
'display' => 'Her gün'
)
);
}
WordPres cron job oluşturma için yukarıdaki örnekte, cron’u 3 farklı zamanda çalıştırabilmeniz için kod ekledim. Her dakika, her saat ve her gün. Bunlardan birini kullanabiliriz ama özel kendi belirlediğiniz bir zaman için nasıl çalışacak onun mantığını anlatayım.
Dizi içerisindeki interval
anahtarının değerine saniye türünden zaman girmeniz gerekiyor yani timestamp. Mesela her 3 günde bir çalışan zaman belirtmek isteseydik 60 * 60 * 24 * 3
şeklinde bi çarpma işlemi yazmamız gerekecekti.
Şu ana kadar yazdığımız kodları birleştirelim, nasıl kullanacağımızı görün kafanız karışmasın.
if ( ! wp_next_scheduled( 'belirlemek_istediginiz_cron_ismi' ) ) {
wp_schedule_event( time(), 'her_gun', 'belirlemek_istediginiz_cron_ismi' );
}
add_filter( 'cron_schedules', 'cron_calisma_zamani_callback');
function cron_calisma_zamani_callback()
{
return array(
'her_dakika' => array(
'interval' => 60,
'display' => 'Her dakika'
),
'her_saat' => array(
'interval' => 60 * 60,
'display' => 'Her saat'
),
'her_gun' => array(
'interval' => 60 * 60 * 24,
'display' => 'Her gün'
)
);
}
Cron’u tanımlamayı ve ne zaman çalışacağını hallettiğimize göre, şimdi yaptırmak istediğimiz işlemi nerede yaptıracağız, kodları nereye yazacağız onu görelim.
Bunun için add_action
fonksiyonunu kullanarak, belirlemek_istediginiz_cron_ismi
adını verdiğimiz fonksiyona bir kanca atacağız.
add_action( 'belirlemek_istediginiz_cron_ismi', function () {
//Bu fonksiyon içerisinde yaptirmak istediğiniz işlemin kodlarını yazın.
} );
WordPres cron job oluşturma için tüm işlemler bu kadardı. Sormak istediğiniz veya kafanıza takılan bir şey olursa yorum yaparak sorabilirsiniz. Size yardımcı olmaktan mutluluk duyarım.
Yardımcı olabilecek kaynaklar;