https://www.halilbeycan.com/274.gif

Wordpress Eklenti Yapımı Dersleri Serisi | DERS #3

575
8 ay önce
 0

Merhaba bir önceki Wordpress Eklenti Yapımı dersinde hazır bir yönetim paneli eklentisi (Option Tree) ile nasıl yönetim paneli yaparız onu anlatmıştım.

Bu derste ise kendimiz nasıl basit yönetim paneli yaparız onu anlatmaya çalışacağım serinin 1. dersinde hatırlarsanız bir panel eklemiştik.

Şimdi bu panele basit bir kaç fonksiyon ile ayar bölümü yapacağız ve bu ayarları kaydettirip short code olarak kullanacağız.

Wordpress Eklenti Yapımı Dersleri Basit Yönetim Paneli Yapımı

İlk önce birinci dersimizde eklediğimiz şu alana panel için gerekli bir kaç alanları ekleyelim.

function ilk_eklentim_panel(){
?>
<h1>İlk Eklentim Ayarları</h1>
<?php
}

Normal text olarak kaydetmeyi ve eğer bir html kodu kayıt edecekseniz bunu nasıl text olarak kaydedip sonra html çıktı olarak alırız onu göstereceğim.

İlk önce form etiketlerimizi açalım ve methot olarak post methodunu verelim çünkü aynı sayfaya göndereceğiz verileri ve güvenlik açısından da önemli.

Form Etiketimizi açtıysak ilk eğer ayar bölümlerini ekleyelim normal bir label oluşturalım ve içine isim yazalım.

Sonra br etiketi ile alt satıra geçip bir input oluşturalım ve name ini isim type ını text yapalım. Ve value değeri olarak ayarı hangi id ile kaydetmek istiyorsak onu şu şekilde ekleyelim.

<?php echo get_option("isim");?>

Bu ayarın input içinde gözükmesini sağlayacak şimdi bir br etiketi daha koyalım ve alt satıra geçelim. Burada öncelikle güvenlik için wordpress in wp_nonce_field fonksiyonunu kullanacağız.

<input type="hidden" name="action" value="guncelle">
<?php wp_nonce_field('ilk_eklentim_guncelleme','ilk_eklentim_guncelleme');  ?>

wp_nonce_field fonksiyonu bu sayfaya özgü bir aciton oluşturur ve güvenlik aşamasında verinin bu sayfadan gelip gelmediğini kontrol etmemize yarar.

Yukarıda kodu br den sonra ekleyin bunlar zaten panelde gözükmeyecek çünkü bunları ayarları kaydetmek için kullanacağız.

Bu koddan sonrada ayarları kaydetmek için bir submit buton oluşturuyoruz ve ekliyoruz. Ve ene son kodumuz aşağıdaki gibi oluyor

function ilk_eklentim_panel(){
?>
<h1>İlk Eklentim Ayarları</h1>
<form method="post">
<label>İsim:</label>
<br>
<input type="text" name="isim" value="<?php echo get_option("isim");?>">
<br>
<input type="hidden" name="action" value="guncelle">
<?php wp_nonce_field('ilk_eklentim_guncelleme','ilk_eklentim_guncelleme');  ?>
<input type="submit" name ="gbuton" value="Güncelle">
</form>
<?php
}

Ve panelde de bu şekilde gözüküyor olacak.

Güncelle butonuna bastığımız da sayfa yenilense de hiç bir işlem olmayacaktır çünkü burada ki veriyi alıp veritabanına ekleyeceğimiz fonksiyonu yazmadık.

Paneldeki Ayarları Veritabanına Yazdırma

Hemen function ilk_eklentim_panel(){ kodunun alt satırına inin ve bir isset oluşturun yani bir formumuz çalıştımı diye kontrol ettirelim.

if($_POST["action"]=="guncelle"){
}

Yukarıdaki dedik ki eğer formda name i action olup değeri guncelle olan bir öğe var ise bu fonksiyonu çalıştır dedik.

Bu fonksiyonun içine de wp_verify_nonce ile gelen veriyi doğrulamak için bir fonksiyon yazalım.

  if (!isset($_POST['ilk_eklentim_guncelleme']) || ! wp_verify_nonce( 
    $_POST['ilk_eklentim_guncelleme'], 'ilk_eklentim_guncelleme' ) ) {
    print 'Üzgünüz bu sayfaya erişim izniniz bulunmamakta';
    exit;
  }else{
    // Güvenliği geçti ise
  }

Yukarıda dedik ki wp_nonce_field fonksiyonu ile oluşturulan inputlar sayesinde. Veri bu sayfadan mı geldi diye kontrol ediyoruz.

Gelmedi ise Üzgünüz bu sayfaya erişim izniniz bulunmamakta diye bir hata mesajı verdiriyoruz.

Eğer bu sayfadan geldi ise veritabanına ayarları kaydetmek için gereken fonksiyonları güvenliği geçti ise bölümüne yazıyoruz ve ayarları kaydediyoruz.

Güvenliği geçti ise bölümüne aşağıda ki kod ile isim inputunda ki değeri veritabanına yazdırıyoruz.

 $isim = sanitize_text_field($_POST['isim']);
    update_option('isim', $isim);
    echo'<div class="updated"><p><strong>Ayarlar kaydedildi.</strong></p></div>';

Yukarıda şöyle diyoruz $isim değişkeninin değerini name i isim olan inputun değerine eşitliyoruz.

Sonra update_option ile $isim değişkeninin değerini alıp isim id si ile veritabanına yazdırıyoruz. Ardından ayarlar kaydedildi diye bir mesaj verdiriyoruz.

if($_POST["action"]=="guncelle"){
	 if (!isset($_POST['ilk_eklentim_guncelleme']) || ! wp_verify_nonce( 
    $_POST['ilk_eklentim_guncelleme'], 'ilk_eklentim_guncelleme' ) ) {
    print 'Üzgünüz bu sayfaya erişim izniniz bulunmamakta';
    exit;
  }else{
     $isim = sanitize_text_field($_POST['isim']);
    update_option('isim', $isim);
    echo'<div class="updated"><p><strong>Ayarlar kaydedildi.</strong></p></div>';
  }
}

Veritabanına kaydetme kodumuzun son hali yukarı da ki gibi oluyor ve tüm hali ise aşağıda ki gibi.

function ilk_eklentim_panel(){
if($_POST["action"]=="guncelle"){
	 if (!isset($_POST['ilk_eklentim_guncelleme']) || ! wp_verify_nonce( 
    $_POST['ilk_eklentim_guncelleme'], 'ilk_eklentim_guncelleme' ) ) {
    print 'Üzgünüz bu sayfaya erişim izniniz bulunmamakta';
    exit;
  }else{
     $isim = sanitize_text_field($_POST['isim']);
    update_option('isim', $isim);
    echo'<div class="updated"><p><strong>Ayarlar kaydedildi.</strong></p></div>';
  }
}
?>
<h1>İlk Eklentim Ayarları</h1>
<form method="post">
<label>İsim:</label>
<br>
<input type="text" name="isim" value="<?php echo get_option("isim");?>">
<br>
<input type="hidden" name="action" value="guncelle">
<?php wp_nonce_field('ilk_eklentim_guncelleme','ilk_eklentim_guncelleme');  ?>
<input type="submit" name ="gbuton" value="Güncelle">
</form>
<?php
}

Şimdi gelin test edelim.

Şimdi bu değeri kısa kod olarak almak için aşağıda ki fonksiyonu kullanalım bu fonksiyonu bi önceki dersimde detaylı bir şekilde anlatmıştım.

add_action('init', 'eklenticode_ex');
function eklenticode_ex(){    
  add_shortcode('eklenticode', 'eklenticode');    
}
 
function eklenticode(){
  echo get_option("isim");
 }

Şimdi [eklenticode] olarak her hangi sayfaya kısa kodu ekleyin ve değeri çağırın.

Evet yine baya uzun oldu o zaman html kodu nasıl kaydederiz onu bir sonraki derste anlatacağım sorularınız olursa yorumlara beklerim sağlıcakla kalın.

Yazar
{beycan1532@gmail.com}

Merhaba ben Halil Front-end developer ve wordpress tema geliştiricisiyim bilgisayara olan ilgim 10. yaşlarıma dayanmakta. 15-16 yaşlarımda bilgisayar kullanmayı iyice çözdüm ve programlamaya ilgi duymaya başladım ilk olarak visualbasic.net ile kendi çapımda kendim için programlar geliştirdim zamanla web'e ilgi duydum ve internet sitesi kurmak istedim tabi hosting domain bilmediğim için bedavasitem ve wix gibi siteler ile yapmıştım bunu ama sürekli araştıran öğrenen ve kendini geliştiren biri olduğum için kısa süre sonra domain ve hosting'in ne olduğunu öğrendim sonra ilk .com'lu sitemi açtım o sırada wordpress ile tanıştım zaten programlamaya ilgimin olması sayesinde wordpress için tema geliştirmek istedim ve ilk wordpress temamı hazır bir html şablonu wordpress'e entegre ederek hazırlamıştım sonrasında ise html, css ve js öğrenerek kendimi geliştirdim ve şuan müşterilim için front-end development ve wordpress tema geliştirme işleri yapıyorum.

Yorumlar (Yorum yapılmamış)

    Yorum Yapmak İstemezmisiniz.

Bir cevap yazın

Zorunlu Alanlar "*" İle İşaretlenmiştir