Web sitenizi yönetirken, belirli görevleri manuel olarak yapmak yerine otomatikleştirmek büyük bir avantaj sağlar. WordPress’te bu tür işlemler için WordPress Cron Jobs mekanizması kullanılır. Örneğin, zamanlanmış yazıları yayınlamak, veritabanı temizliği yapmak veya yedekleme oluşturmak için cron görevleri oldukça kullanışlıdır.
Bu rehberde, WordPress’te Cron Jobs’un ne olduğunu, nasıl çalıştığını ve özelleştirilmiş görevlerin nasıl oluşturulacağını detaylı bir şekilde inceleyeceğiz.
1. WordPress Cron Jobs Nedir?
Cron Jobs, belirli zamanlarda çalıştırılmak üzere programlanmış görevlerdir. Linux sunucularında kullanılan geleneksel cron sisteminin WordPress’e özel bir sürümü olarak düşünülebilir.
WordPress, bu işlemi wp-cron.php dosyası aracılığıyla yönetir ve sitenize yapılan ziyaretlere bağlı olarak çalıştırır. Yani, biri sitenize eriştiğinde cron görevleri tetiklenir.
1.1. WordPress Cron Jobs ile Yapılabilecek İşlemler
Zamanlanmış yazıları otomatik olarak yayınlama
Eklenti ve tema güncellemelerini kontrol etme
Veritabanı temizliği ve optimizasyonu
Otomatik yedekleme alma
E-postaları zamanlayarak gönderme
XML site haritasını güncelleme
2. WordPress Cron Jobs Nasıl Çalışır?
WordPress, sunucunun kendi cron sistemine bağımlı kalmadan kendi zamanlanmış görevlerini yönetir. Ancak, bu sistem bazı durumlarda dezavantajlara sahiptir:
Gerçek zamanlı çalışmaz: Ziyaretçi yoksa cron çalışmayabilir.
Yoğun trafik sırasında performans düşebilir: Çok fazla cron görevi varsa siteyi yavaşlatabilir.
Bu yüzden, bazen WordPress'in varsayılan cron sistemini devre dışı bırakıp gerçek bir sunucu cron job kullanmak daha iyi bir seçenektir.
3. WordPress’te Cron Jobs Yönetimi
3.1. Varsayılan Cron Görevlerini Görüntüleme
Mevcut cron görevlerinizi görmek için WP Crontrol eklentisini kullanabilirsiniz:
1. Eklentiyi yükleyin:
WordPress panelinden Eklentiler > Yeni Ekle bölümüne gidin.
"WP Crontrol" eklentisini aratıp yükleyin.
2. Cron görevlerini görüntüleyin:
Araçlar > Cron Etkinlikleri sayfasına giderek mevcut görevleri görebilirsiniz.
3.2. Yeni Cron Görevi Eklemek
Özel cron görevleri oluşturmak için functions.php dosyanıza aşağıdaki kodları ekleyebilirsiniz.
1. İlk Adım: Cron İşlemini Tanımlama
function ozel_cron_gorevi() {
error_log("Özel cron görevi çalıştırıldı: " . date('Y-m-d H:i:s'));
}
add_action('ozel_cron_gorevi_hook', 'ozel_cron_gorevi');
2. İkinci Adım: Cron Görevini Planlama
if (!wp_next_scheduled('ozel_cron_gorevi_hook')) {
wp_schedule_event(time(), 'hourly', 'ozel_cron_gorevi_hook');
}
Bu kod, "ozel_cron_gorevi_hook" adlı cron görevini oluşturur ve her saat başı çalıştırır.
3. Üçüncü Adım: Cron Görevini Temizleme
Cron görevi artık gerekli değilse, şu kod ile kaldırabilirsiniz:
wp_clear_scheduled_hook('ozel_cron_gorevi_hook');
4. Gerçek Sunucu Cron Job Kullanımı
WordPress’in varsayılan wp-cron.php dosyası, sitenize her ziyaret edildiğinde çalıştığı için performans sorunlarına yol açabilir. Bunun yerine gerçek bir sunucu cron job kullanabilirsiniz.
4.1. WordPress Cron’u Devre Dışı Bırakma
Öncelikle, wp-cron.php dosyasının otomatik çalışmasını devre dışı bırakmalısınız. wp-config.php dosyanıza şu kodu ekleyin:
define('DISABLE_WP_CRON', true);
4.2. Sunucuda Manuel Cron Job Oluşturma
cPanel, Plesk veya SSH kullanarak bir cron job ekleyebilirsiniz.
cPanel Üzerinden Cron Job Ekleme
1. cPanel’e giriş yapın.
2. "Cron Jobs" sekmesine gidin.
3. Aşağıdaki komutu kullanarak bir cron job ekleyin:
*/30 * * * * wget -q -O - https://siteadresiniz.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
Bu komut, wp-cron.php dosyasını 30 dakikada bir çalıştırır.
SSH Üzerinden Cron Job Ekleme
Sunucunuza SSH ile bağlanarak şu komutu girin:
crontab -e
Ardından şu satırı ekleyin:
*/30 * * * * curl -s https://siteadresiniz.com/wp-cron.php?doing_wp_cron > /dev/null
5. WordPress Cron Job Optimizasyonu ve En İyi Uygulamalar
Gereksiz cron görevlerini kaldırın: WP Crontrol eklentisi ile kullanılmayan görevleri temizleyin.
Cron görevlerini azaltın: Çok sık çalıştırılan görevleri daha uzun aralıklarla planlayın.
Gerçek sunucu cron job kullanın: Daha güvenilir ve hızlıdır.
Veritabanınızı düzenli olarak optimize edin: Gereksiz verileri temizleyerek cron işlemlerinin daha verimli çalışmasını sağlayabilirsiniz.
Sonuç
WordPress cron jobs, web sitenizi otomatikleştirmek ve manuel iş yükünü azaltmak için harika bir araçtır. Ancak, varsayılan sistemin sınırlamaları nedeniyle bazı durumlarda gerçek sunucu cron jobs kullanmak daha iyi bir seçenektir.
Bu rehberde, WordPress’te Cron Jobs’un ne olduğunu, nasıl çalıştığını ve özelleştirilmiş görevlerin nasıl oluşturulacağını detaylı bir şekilde inceleyeceğiz.
1. WordPress Cron Jobs Nedir?
Cron Jobs, belirli zamanlarda çalıştırılmak üzere programlanmış görevlerdir. Linux sunucularında kullanılan geleneksel cron sisteminin WordPress’e özel bir sürümü olarak düşünülebilir.
WordPress, bu işlemi wp-cron.php dosyası aracılığıyla yönetir ve sitenize yapılan ziyaretlere bağlı olarak çalıştırır. Yani, biri sitenize eriştiğinde cron görevleri tetiklenir.
1.1. WordPress Cron Jobs ile Yapılabilecek İşlemler
Zamanlanmış yazıları otomatik olarak yayınlama
Eklenti ve tema güncellemelerini kontrol etme
Veritabanı temizliği ve optimizasyonu
Otomatik yedekleme alma
E-postaları zamanlayarak gönderme
XML site haritasını güncelleme
2. WordPress Cron Jobs Nasıl Çalışır?
WordPress, sunucunun kendi cron sistemine bağımlı kalmadan kendi zamanlanmış görevlerini yönetir. Ancak, bu sistem bazı durumlarda dezavantajlara sahiptir:
Gerçek zamanlı çalışmaz: Ziyaretçi yoksa cron çalışmayabilir.
Yoğun trafik sırasında performans düşebilir: Çok fazla cron görevi varsa siteyi yavaşlatabilir.
Bu yüzden, bazen WordPress'in varsayılan cron sistemini devre dışı bırakıp gerçek bir sunucu cron job kullanmak daha iyi bir seçenektir.
3. WordPress’te Cron Jobs Yönetimi
3.1. Varsayılan Cron Görevlerini Görüntüleme
Mevcut cron görevlerinizi görmek için WP Crontrol eklentisini kullanabilirsiniz:
1. Eklentiyi yükleyin:
WordPress panelinden Eklentiler > Yeni Ekle bölümüne gidin.
"WP Crontrol" eklentisini aratıp yükleyin.
2. Cron görevlerini görüntüleyin:
Araçlar > Cron Etkinlikleri sayfasına giderek mevcut görevleri görebilirsiniz.
3.2. Yeni Cron Görevi Eklemek
Özel cron görevleri oluşturmak için functions.php dosyanıza aşağıdaki kodları ekleyebilirsiniz.
1. İlk Adım: Cron İşlemini Tanımlama
function ozel_cron_gorevi() {
error_log("Özel cron görevi çalıştırıldı: " . date('Y-m-d H:i:s'));
}
add_action('ozel_cron_gorevi_hook', 'ozel_cron_gorevi');
2. İkinci Adım: Cron Görevini Planlama
if (!wp_next_scheduled('ozel_cron_gorevi_hook')) {
wp_schedule_event(time(), 'hourly', 'ozel_cron_gorevi_hook');
}
Bu kod, "ozel_cron_gorevi_hook" adlı cron görevini oluşturur ve her saat başı çalıştırır.
3. Üçüncü Adım: Cron Görevini Temizleme
Cron görevi artık gerekli değilse, şu kod ile kaldırabilirsiniz:
wp_clear_scheduled_hook('ozel_cron_gorevi_hook');
4. Gerçek Sunucu Cron Job Kullanımı
WordPress’in varsayılan wp-cron.php dosyası, sitenize her ziyaret edildiğinde çalıştığı için performans sorunlarına yol açabilir. Bunun yerine gerçek bir sunucu cron job kullanabilirsiniz.
4.1. WordPress Cron’u Devre Dışı Bırakma
Öncelikle, wp-cron.php dosyasının otomatik çalışmasını devre dışı bırakmalısınız. wp-config.php dosyanıza şu kodu ekleyin:
define('DISABLE_WP_CRON', true);
4.2. Sunucuda Manuel Cron Job Oluşturma
cPanel, Plesk veya SSH kullanarak bir cron job ekleyebilirsiniz.
cPanel Üzerinden Cron Job Ekleme
1. cPanel’e giriş yapın.
2. "Cron Jobs" sekmesine gidin.
3. Aşağıdaki komutu kullanarak bir cron job ekleyin:
*/30 * * * * wget -q -O - https://siteadresiniz.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
Bu komut, wp-cron.php dosyasını 30 dakikada bir çalıştırır.
SSH Üzerinden Cron Job Ekleme
Sunucunuza SSH ile bağlanarak şu komutu girin:
crontab -e
Ardından şu satırı ekleyin:
*/30 * * * * curl -s https://siteadresiniz.com/wp-cron.php?doing_wp_cron > /dev/null
5. WordPress Cron Job Optimizasyonu ve En İyi Uygulamalar
Gereksiz cron görevlerini kaldırın: WP Crontrol eklentisi ile kullanılmayan görevleri temizleyin.
Cron görevlerini azaltın: Çok sık çalıştırılan görevleri daha uzun aralıklarla planlayın.
Gerçek sunucu cron job kullanın: Daha güvenilir ve hızlıdır.
Veritabanınızı düzenli olarak optimize edin: Gereksiz verileri temizleyerek cron işlemlerinin daha verimli çalışmasını sağlayabilirsiniz.
Sonuç
WordPress cron jobs, web sitenizi otomatikleştirmek ve manuel iş yükünü azaltmak için harika bir araçtır. Ancak, varsayılan sistemin sınırlamaları nedeniyle bazı durumlarda gerçek sunucu cron jobs kullanmak daha iyi bir seçenektir.