Gereksinimler ve Ön Hazırlık
Bir widget eklentisi geliştirmeye başlamadan önce yerel geliştirme ortamınızın hazır olduğundan emin olmalısınız. WordPress 6.x ve üzeri sürümlerle uyumlu, güncel PHP (8.2 veya üzeri) sürümü kullanan bir yerel sunucu (LocalWP veya XAMPP gibi) üzerinde çalışmanız önerilir.
- Kod Editörü: VS Code veya PHPStorm gibi gelişmiş bir editör.
- WordPress Bilgisi:
WP_Widgetsınıfının temel yapısı hakkında ön bilgi. - Dosya Yapısı:
wp-content/plugins/dizini altında yeni bir klasör oluşturma yetkisi. - Hata Ayıklama:
wp-config.phpdosyasındaWP_DEBUGmodunun açık olması.
Adım 1: Eklenti Dosyasını ve Başlığını Oluşturma
WordPress, eklentileri belirli bir üst bilgi (header) yorum satırı ile tanır. İlk adım olarak wp-content/plugins/ozel-widget-egitimi/ dizinini oluşturun ve içine ozel-widget-egitimi.php dosyasını ekleyin.
Adım 2: WP_Widget Sınıfını Genişletme ve Yapılandırma
WordPress'te özel bir widget oluşturmanın temel taşı, WP_Widget sınıfından türetilen bir PHP sınıfı oluşturmaktır. Bu sınıf, widget'ın yönetici panelindeki formunu, ön yüzde nasıl görüneceğini ve verilerin nasıl kaydedileceğini kontrol eden dört ana metodu barındırır.
Aşağıdaki kod bloğu, widget'ınızın temel iskeletini oluşturur. Bu sınıfı ozel-widget-egitimi.php dosyanızın içine ekleyin:
class Ozel_Bilgi_Widgeti extends WP_Widget {
// Widget'ı başlatma
public function __construct() {
parent::__construct(
'ozel_bilgi_widgeti', // Base ID
'Özel Bilgi Widgeti', // İsim
array( 'description' => 'Kullanıcıya özel mesaj gösteren basit bir widget.' )
);
}
// Ön yüzde görünen içerik
public function widget( $args, $instance ) {
echo $args['before_widget'];
echo $args['before_title'] . 'Hoş Geldiniz!' . $args['after_title'];
echo 'Bu, özel bir widget eklentisidir.
';
echo $args['after_widget'];
}
// Yönetici panelindeki form
public function form( $instance ) {
echo 'Bu widget için ayar gerekmemektedir.
';
}
// Verileri güncelleme
public function update( $new_instance, $old_instance ) {
return $new_instance;
}
}
Adım 3: Widget'ı WordPress'e Kaydettirme
Widget sınıfını tanımlamak tek başına yeterli değildir; WordPress'in bu widget'ı tanıması için widgets_init kancasını (hook) kullanmamız gerekir. Bu işlem, eklentinizin WordPress'in widget sistemine dahil edilmesini sağlar.
Dosyanızın en altına şu fonksiyonu ekleyin:
function ozel_widget_kayit_et() {
register_widget( 'Ozel_Bilgi_Widgeti' );
}
add_action( 'widgets_init', 'ozel_widget_kayit_et' );
İleri İpuçları: Widget Performansını Optimize Etme
Widget'lar her sayfa yüklenişinde tetiklendiği için, özellikle veritabanı sorguları içeren widget'larda performans kritik bir rol oynar. İşte widget'larınızı daha verimli hale getirmek için dikkat etmeniz gerekenler:
- Transient API Kullanımı: Eğer widget'ınız dış bir API'den veri çekiyorsa, bu verileri
set_transient() fonksiyonu ile belirli bir süre önbelleğe alın.
- Veritabanı Sorgularını Sınırlandırın:
widget() metodu içerisinde ağır WP_Query sorguları çalıştırmaktan kaçının. Mümkünse verileri update() metodunda işleyip wp_options tablosunda saklayın.
- Koşullu Yükleme: Widget'ın sadece belirli sayfalarda görünmesini istiyorsanız
is_front_page() veya is_single() gibi koşullu etiketleri widget() metodunun başında kullanın.
Not: Widget'ınızda kullanıcıdan veri alıyorsanız, update() metodunda verileri mutlaka sanitize_text_field() veya esc_url() gibi fonksiyonlarla temizleyin. Bu, güvenlik açığı oluşmasını engeller.

Yorumlar (0)
Yorum Yaz