WordPress eklentisi geliştirirken, kullanıcıya özelleştirilebilir seçenekler sunmak neredeyse bir gerekliliktir. Bunun için en etkili yöntem, Settings API kullanarak bir ayarlar sayfası oluşturmaktır. WordPress’in 2.7 sürümünden itibaren kullanılabilen Settings API, güvenli, sürdürülebilir ve sistemle entegre bir yapı sağlar.
Bu makalede, WordPress Settings API’nin nasıl çalıştığını, nasıl uygulanacağını ve profesyonel bir eklentiye nasıl entegre edileceğini tüm yönleriyle ele alıyoruz.
Settings API Nedir?
Settings API, WordPress’in çekirdeğinde yer alan ve ayar alanları (settings fields) oluşturmayı, ayarları kaydetmeyi ve ekranlarda görüntülemeyi kolaylaştıran bir yapıdır. Settings API, kullanıcı girişlerini otomatik olarak doğrular ve WordPress veritabanında saklar. Bu sayede:
- Kod tekrarından kaçınılır.
- Güvenlik artırılır.
- Kullanıcı arayüzü tutarlılığı sağlanır.
Ayarlar Sayfası Oluşturma Adımları
WordPress eklentinize ayarlar sayfası eklemek için aşağıdaki adımları izleyebilirsiniz:
1. Yönetici Menü Sayfası Ekleyin
add_action('admin_menu', 'ornek_ayarlar_sayfasi');
function ornek_ayarlar_sayfasi() {
add_options_page(
'Eklenti Ayarları',
'Eklenti Ayarları',
'manage_options',
'ornek-eklenti-ayarlari',
'ornek_ayarlar_sayfasi_html'
);
}
Bu fonksiyon, “Ayarlar” menüsü altına bir alt menü olarak eklenti ayarlarınızı ekler.
2. Ayarlar Sayfası İçeriğini Oluşturun
function ornek_ayarlar_sayfasi_html() {
?>
<div class="wrap">
<h1>Eklenti Ayarları</h1>
<form action="options.php" method="post">
<?php
settings_fields('ornek_ayar_grubu');
do_settings_sections('ornek-eklenti-ayarlari');
submit_button('Ayarları Kaydet');
?>
</form>
</div>
<?php
}
3. Settings API ile Ayar Alanlarını Kayıt Et
add_action('admin_init', 'ornek_ayarlar_init');
function ornek_ayarlar_init() {
register_setting(
'ornek_ayar_grubu', // settings_fields referansı
'ornek_ayar', // option name
'ornek_ayar_sanitazyon' // opsiyonel temizleme fonksiyonu
);
add_settings_section(
'ornek_ayar_bolumu',
'Genel Ayarlar',
'ornek_bolum_aciklama',
'ornek-eklenti-ayarlari'
);
add_settings_field(
'ornek_alan',
'Örnek Metin Alanı',
'ornek_alan_render',
'ornek-eklenti-ayarlari',
'ornek_ayar_bolumu'
);
}
4. Alanı Render Etme (Input Gösterimi)
function ornek_alan_render() {
$ayarlar = get_option('ornek_ayar');
?>
<input type="text" name="ornek_ayar[ornek_alan]" value="<?php echo esc_attr($ayarlar['ornek_alan'] ?? ''); ?>" />
<?php
}
function ornek_bolum_aciklama() {
echo '<p>Bu bölümde eklentiye dair temel ayarları yapabilirsiniz.</p>';
}
5. Temizleme ve Doğrulama Fonksiyonu (Opsiyonel)
function ornek_ayar_sanitazyon($girdiler) {
$girdiler['ornek_alan'] = sanitize_text_field($girdiler['ornek_alan']);
return $girdiler;
}
Kullanılan Temel Fonksiyonların Açıklamaları
| Fonksiyon | Görev |
|---|---|
add_options_page() | Ayarlar menüsüne sayfa ekler |
settings_fields() | Gizli inputlarla nonce üretir |
do_settings_sections() | Tanımlanan tüm ayar bölümlerini ve alanları çağırır |
register_setting() | Ayarın WordPress veritabanına kayıt edilmesini sağlar |
add_settings_section() | Ayar sayfasında başlık bölümü ekler |
add_settings_field() | Gerçek input alanını tanımlar |
Best Practice: Kodların Ayrıştırılması
Kodunuzu daha modüler hale getirmek için:
- Ayar sayfası fonksiyonlarını ayrı bir PHP dosyasına taşıyın.
includes/ayarlar.phpgibi bir dosya oluşturup orada çağırın.- Geliştirici belgelerine ve WordPress kod standartlarına uygun yazın.
Güvenlik ve Performans Önerileri
- Tüm kullanıcı girdilerini sanitize ve validate edin.
- Sadece
manage_optionsyetkisine sahip kullanıcıların erişmesini sağlayın. - Caching gerektiren ayarlar varsa
get_transient()veset_transient()gibi WordPress fonksiyonlarını kullanın.
Gelişmiş Uygulamalar
- Sekmeli Ayarlar Sayfası: Ayarları kategorilere ayırmak için sekmelerle kullanıcı deneyimini artırabilirsiniz.
- Custom post types entegrasyonu: Belirli içerik türlerine özel ayarlar geliştirebilirsiniz.
- JavaScript ile Canlı Önizleme: Ayar değişikliklerini canlı olarak gösterebilirsiniz.
Değerlendirme
Settings API, WordPress eklentilerinizde kullanıcı dostu, güvenli ve sürdürülebilir bir yapı sunmanın en doğru yoludur. Manuel HTML formlar yerine Settings API’yi kullanmak hem geliştirici hem kullanıcı açısından büyük kolaylık sağlar. Özellikle profesyonel projelerde bu yapı bir standarttır ve doğru kullanıldığında kodunuzu ileriye dönük taşır.







