Tasarladığınız WordPress Eklentinizde Ayarlar Sayfası Oluşturma: Settings API Kullanımı

Settings API, WordPress eklentilerinizde kullanıcı dostu, güvenli ve sürdürülebilir bir yapı sunmanın en doğru yoludur.

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ı

FonksiyonGö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.php gibi 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_options yetkisine sahip kullanıcıların erişmesini sağlayın.
  • Caching gerektiren ayarlar varsa get_transient() ve set_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.

WPW

WPW

İçerik yazarı, teknolojiye meraklı, grafik tasarımcı, sosyal medya ve seo danışmanı...

Articles: 871