MENÜ

WordPress Eklenti Kodlamak

2173 defa okundu 3 defa yorumlandı kategorisinde, tarihinde yayınlandı
WordPress Eklenti Kodlamak

WordPress ‘den bahsederken sınırların hayal gücümüzle bağlantılı olduğunu ve düşündüğümüz (mantıklı) herşeyi bu sisteme entegre edebileceğimiz söylemiştik. Bizler genellikle son kullanıcıya yönelik geliştirmeler sunarken tema ve tema fonksiyonlarını kullanmaktayız. Ancak bazı durumlarda tema üzerinden çözemeyeceğimiz, çözebilsek bile çok karışık olacağı ve başka projelerdede kullanabileceğimiz durumlarla karşılaşabiliyoruz. WP eklenti yazma durumu benim açımdan işte tamda burada başlıyor (Tabiki bu kadar basit bir şey değil ve binlerce mevcut eklenti arasından benimde kullandığım birçok eklenti var).

WordPress te eklenti yazmak tema yazmaya benzeyen bir yapıya sahip ancak önemli olan eklentileri temalardan ayıran özellikleri öğrenmek. Temada temamızı style.css dosyasına eklediğimiz tanımlama alanıyla sisteme tanıtıyorduk, eklentide ise ana dosyamıza benzer bir kod tanımlama verisi girmemiz gerekiyor. Standart olarak şu değerleri girebiliriz.

1
2
3
4
5
6
7
8
9
10
<?php
/*
Plugin Name: Benim Eklentim
Plugin URI: http://www.wpcoder.net
Description: Eklentinizin Açıklaması
Version: 1.1
Author: WPCoder
Author URI: http://www.wpcoder.net
*/
?>

Bu kodu eklentinizin main dosyasına yazmalısınız. Tek dosyalı bir eklenti yazıyorsanız bu dosya özgün isimli bir dosya olabilir. Birden fazla dosya ile çalışan bir eklenti yazıyorsanız eklentinizi özgün ismiyle bir klasörde toplamalı ve bu kodları klasör içerisindeki main dosyanıza yazmalısınız. Her ihtimale karşı klasöre bir index.php koyacağınız için ben ana dosya olarak index.php kullanmanızı öneririm.

Tanımladan sonra kodlarımızı codex ‘e uygun olarak direk yazabiliriz ancak buraya yazacağımız kodlar tema derlenmeden önce çalışacağı için eğer ekrana veri yazdıracak bir eklenti kullanıyorsak direkt kod yazmaktansa fonksiyonlar aracılığı ile kodlarımızı yazmamızı ve tema içerisinde kullanacağımız alanda bu fonksiyonları çağırmamızı tavsiye ederim. Örnek bir eklenti şu şekilde olabilir.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
/*
Plugin Name: Benim Eklentim
Plugin URI: http://www.wpcoder.net
Description: Eklentinizin Açıklaması
Version: 1.1
Author: WPCoder
Author URI: http://www.wpcoder.net
*/
function hosgeldin()
{
$kullanici = wp_get_current_user();
if ( 0 == $kullanici->ID ) {
    echo 'Hoşgeldin, Misafir.';
} else {
    echo 'Hoşgeldin, '.$kullanici->display_name.'.';
}
}
?>

Eklentimizde bulunan fonksiyonu temamızda şu şekilde çağırabiliriz.

1
2
3
4
5
<?php
if(function_exists('hosgeldin')) {
hosgeldin();
}
?>

Burada farklı olarak function_exits komutunu kullandık bu komut fonksiyonun varolup olmadığını kontrol etmemiz için mevcut eğer eklenti yok ise o alanı çalıştırmayacak ve sitemiz hata vermemiş olacak.

Eklentilerde genel olarak kullandığımız 2 tanımlama (add_action) vardır.

1
2
add_action('admin_menu', 'menuyeekle');
add_action('admin_head','oncegetir');

admin_menu olarak tanımladığımız alanda menüye eklenecek kodları yazmaktayız ve admin_head alanında ise admin paneli yüklenmeden önce çalıştıracağımız kodları yazmaktayız. Çok daha fazlası için codex ‘te araştırma yapabilirsiniz. Basit bir anlatımla tanımlamalar şu şekilde yapılabilir.

1
2
3
4
5
6
7
8
add_action('admin_menu', 'menuyeekle');
add_action('admin_head','oncegetir');
function menuyeekle() {
	add_submenu_page('options-general.php', 'wpcoder', 'Benim Eklentim', 10, __FILE__, 'ayarlar');
}
function oncegetir(){
	$site=get_bloginfo("url");
}

Bu tanımlamada daha önce görmediğimiz kod ise add_submenu_page(). Onunda codex kısa açıklaması şu şekilde

1
 <?php add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function ); ?>

Burada Dikkat edeceğiz alan eklenti ve sayfa başlıkları ve ayarların yapılacağı fonksiyon ismi, yukarıda verdiğim örneğe göre ayar fonksiyonumuz şu şekilde olabilir.

1
2
3
4
5
6
7
8
9
10
11
12
function ayarlar()
{
add_option("wpcoder_baslik","WPCoder ile Eklenti Kodluyoruz","no");
if($_POST['baslik']){	
update_option("wpcoder_baslik",$_POST['baslik'],"","no");
echo "Ayarlar Güncellendi.<br />";
}
echo'<form action="" method="post">
<input type="text" value="'.get_option("wpcoder_baslik").'" placeholder="Bir Başlık Yazın" />
<input type="submit" value="Kaydet" />
</form>';
}

Basit seviyede bir eklenti yazımı için ilk adımları geçmiş bulunuyoruz. Devam eden derslerde eklenti yazmanın diğer gerekliliklerini ve püf noktalarını incelemeye devam edeceğiz.

Yorum Yaz
3 Yorum
  • NurtenCevapla

    Bu derslerin devamı yok mu acaba?

    Eyl 01, 2014 17:40
    • AhmetCevapla

      Konu ilgi görmeyince devamını yazamıyor insan, boş vakit ayarlayabilirsem devam niteliğinde yeni yazılar yazmaya çalışacağım. İlginizden dolayı teşekkür ederim.

      Eyl 02, 2014 19:34
  • sabahattinCevapla

    Yazılarınızın ileri düzey olarak devamını bekliyoruz. Ellerinize sağlık

    Kas 29, 2014 20:34