lostyazilim
tr.link

WordPress Tema Paneli Yapımı

17 Mesajlar 8.462 Okunma
acebozum
tr.link

isousluer isousluer Usluer Kullanıcı
  • Üyelik 05.04.2011
  • Yaş/Cinsiyet 31 / E
  • Meslek Yazılım Geliştirici
  • Konum Konya
  • Ad Soyad İ** U**
  • Mesajlar 4900
  • Beğeniler 1419 / 2962
  • Ticaret 45, (%100)
Öncelikle bu makaleyi azda olsa php ve WordPress bilginizin olduğunu varsayarak anlatıyorum.

Tema Paneli Ne İşe Yarar?

Yukarıda da bahsettiğim gibi bizim tema dosyalarını oynayarak manuel olarak yapacağımız işleri kolaylaştırıp direk tema paneli üzerinden ayarlayabiliriz. Mesela sidebarda reklam alanınız var fakat siz bunu her seferinde sidebar.php ye girip kodları düzelterek ayarlıyorsunuz. Bundan sonra panel üzerinden kodlarla uğraşmadan ayarlama yapabileceksiniz.

Kurulum Aşaması

Öncelikler functions.php dosyamızın php tagları arasına aşağıdaki kodu ekliyoruz.

if (file_exists(TEMPLATEPATH.'/temapaneli.php')) include_once("temapaneli.php");Bu kod sayesinde temapaneli.php dosyamızı çağırdık. Şimdi gelelim panel kodlarına.


function mytheme_add_init() {

$file_dir=get_bloginfo('template_directory');
wp_enqueue_style("functions", $file_dir."/temapanel/temapanel.css", false, "1.0", "all");
wp_enqueue_script("rm_script", $file_dir."/temapanel/rm_script.js", false, "1.0");

}

$themename = "Usluer";
$shortname = "er";

$categories = get_categories('hide_empty=0&orderby=name');
$wp_cats = array();
foreach ($categories as $category_list ) {
$wp_cats[$category_list->cat_ID] = $category_list->cat_name;
}
array_unshift($wp_cats, "Kategori Seçiniz");

$options = array (

array( "name" => $themename." Options",
"type" => "title"),

array( "name" => "Genel Ayarlar",
"type" => "section"),
array( "type" => "open"),

array( "name" => "Logo Url",
"desc" => "Logonuzun adresini buraya yazınız.",
"id" => $shortname."_logo",
"type" => "text",
"std" => ""),

array( "name" => "Favicon Url",
"desc" => "Favicon adresini buraya yazınız.",
"id" => $shortname."_favicon",
"type" => "text",
"std" => ""),

array( "name" => "Twitter Kutusu",
"desc" => "Eğer Eveti seçerseniz reklam banneri yerine son twitiniz gözükür.",
"id" => $shortname."_twitter_kutusu",
"type" => "select",
"options" => array("Evet", "Hayır"),
"std" => ""),

array( "name" => "Twitter Kullanıcı Adı",
"desc" => "Twitter kullanıcı adını yazınız.",
"id" => $shortname."_twitter_kadi",
"type" => "text",
"std" => ""),

array( "type" => "close"),

);

function mytheme_add_admin() {

global $themename, $shortname, $options;

if ( $_GET['page'] == basename(__FILE__) ) {

if ( 'save' == $_REQUEST['action'] ) {

foreach ($options as $value) {
update_option( $value['id'], $_REQUEST[ $value['id'] ] ); }

foreach ($options as $value) {
if( isset( $_REQUEST[ $value['id'] ] ) ) { update_option( $value['id'], $_REQUEST[ $value['id'] ] ); } else { delete_option( $value['id'] ); } }

header("Location: admin.php?page=temapaneli.php&saved=true");

}

else if( 'reset' == $_REQUEST['action'] ) {

foreach ($options as $value) {
delete_option( $value['id'] ); }

header("Location: admin.php?page=temapaneli.php&reset=true");

}
}

add_menu_page($themename, $themename, 'administrator', basename(__FILE__), 'mytheme_admin');
}

function mytheme_admin() {

global $themename, $shortname, $options;
$i=0;

?>

Ayarlar





switch ( $value['type'] ) {

case "open":
?>


case "close":
?>







case "title":
?>

tema yönetim paneline hoşgeldiniz.




case 'text':
?>



" />



break;

case 'textarea':
?>








break;

case 'select':
?>








break;

case "checkbox":
?>





/>



case "section":

$i++;

?>







}
}
?>









İsmail Usluer tarafından hazırlanmıştır.



}
?>
add_action('admin_init', 'mytheme_add_init');
add_action('admin_menu', 'mytheme_add_admin');
?>

Bu kodları metin belgesine veya herhangi bir yazım editörüne yapıştıralım. Ve düzenlememiz gereken yerleri düzenleyelim. 11 ve 12. satırlarda Usluer ve er yazmakta. Buradaki Usluer panel ismidir. er ise panel isminin kısa yazımıdır ve bu er önemlidir. Tema dosyalarına yazacağımız kontrollerde kullanacağız. Burada sadece bir kısım oluşturulmuş. Siz 25 ve 55. satırlar arasını kopyalayıp (25 ve 55. satırlar dahil) 55. satırın altına yapıştırıp düzenlediğinizde yeni kısımlar oluşturabilirsiniz. Tabi bunlar için çok fazla olmasada kod bilgisine ihtiyacınız vardır. Hiçbirşey bilmeyen biri bunları yapmakta zorlanacaktır.

Gereken yerleri düzenledikten sonra temapaneli.php olarak kaydediyoruz. Daha önceden de functions.php dosyamıza bir satır eklemiştik. functions.php ve temapaneli.php yi tema klasörümüzün içine atıyoruz. Admin panelimize girip tema panelini çalıştırdığımızda hiç hoş bir görüntü çıkmayacak karşımıza. Çünkü css ve js dosyalarını atmadık. :) Bu dosyaları yazımın sonunda paylaşacağım.

Panelin Temada Kullanılması

Mesela bir kontrole bağlı olarak ekrana panelden ayarladığımız bir metni yazdıralım.


Burada her iki seçeneği de anlatmaya çalıştım. Yaptığımız işlem ise çok basit. Eğer er_twitter_kutusu id`li combobox Evet ise er_twitter_kadi id`li metni ekrana yazdır. Buradaki er yukarıda da belirttiğim gibi panel isminin kısa yazımıdır.

Sonuç

WordPress temamız nasıl panelden kontrol edilir azda olsa bir fikir sahibi olduğumuzu düşünüyorum. Biraz üstünde durarak yarım saatte basit bir panel yapabilirsiniz. Merak ettiğiniz veya takıldığınız yerleri buradan bana sorarsanız elimden geldiğince yardım ederim.

Dosyalar

Buradan indirebilirsiniz. Zip'den çıkan dosyaları olduğu gibi tema klasörüne atınız.

Kendi panel demomu da buradan izleyebilirsiniz.

Panel ile reklam vs. gösteriminde sorun yaşayanlar okusun!

Aşağıdakileri temapaneli.php dosyasında değil, içeriği temada çağırırken yapacağız.


Yukarıda görüldüğü gibi içeriği temada çağırırken başına stripslashes(); getirilirse sorun çözülecektir.

Kaynak: http://www.usluer.net/wordpress-tema-paneli-yapimi/
 

 

elektronikssl
webimgo

Genc Genc Computer Engineer Kullanıcı
  • Üyelik 30.10.2011
  • Yaş/Cinsiyet 28 / E
  • Meslek Bilgisayar Mühendisi
  • Konum İstanbul Anadolu
  • Ad Soyad Ö** G**
  • Mesajlar 1606
  • Beğeniler 760 / 441
  • Ticaret 49, (%98)
İşte abi böyle insanlar oldukça gerçekten seviyorum çok teşekkürler :)
 

 

isousluer isousluer Usluer Kullanıcı
  • Üyelik 05.04.2011
  • Yaş/Cinsiyet 31 / E
  • Meslek Yazılım Geliştirici
  • Konum Konya
  • Ad Soyad İ** U**
  • Mesajlar 4900
  • Beğeniler 1419 / 2962
  • Ticaret 45, (%100)
Rica ederim. Biraz yüzeysel anlattım ama çok önceden yazmışım bu makaleyi. Yeniden yazmakta uzun sürerdi. Yapamadığınız bir yer olursa sorarsınız. Elimden geldiğince yardımcı olurum.
Genc

kişi bu mesajı beğendi.

Sungmert Sungmert carpe diem ne diyem Kullanıcı
  • Üyelik 12.01.2012
  • Yaş/Cinsiyet 29 / E
  • Meslek Freelancer
  • Konum İstanbul Avrupa
  • Ad Soyad M** Y**
  • Mesajlar 1233
  • Beğeniler 506 / 407
  • Ticaret 39, (%100)
Sen nesin be abiii :) Ellerine sağlık.
 

 

wmaraci
wmaraci

KeremZOR KeremZOR o kadar zor değilim Banlı Kullanıcı
  • Üyelik 12.09.2011
  • Yaş/Cinsiyet 28 / E
  • Meslek Uİ Designer & Web developer
  • Konum KKTC
  • Ad Soyad ** **
  • Mesajlar 1378
  • Beğeniler 363 / 346
  • Ticaret 9, (%100)
Cok saol ismail abi
 

 

isousluer isousluer Usluer Kullanıcı
  • Üyelik 05.04.2011
  • Yaş/Cinsiyet 31 / E
  • Meslek Yazılım Geliştirici
  • Konum Konya
  • Ad Soyad İ** U**
  • Mesajlar 4900
  • Beğeniler 1419 / 2962
  • Ticaret 45, (%100)
Hepimiz insanız. :D

Ek Olarak: Ne demek Kerem. :)
ErenKeskin Riza Sungmert

kişi bu mesajı beğendi.

wpuzmann wpuzmann Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 13.07.2011
  • Yaş/Cinsiyet 43 / E
  • Meslek seo uzmanı
  • Konum İstanbul Anadolu
  • Ad Soyad ** **
  • Mesajlar 772
  • Beğeniler 108 / 61
  • Ticaret 4, (%100)
Çok teşekkürler hocam.Ellerine sağlık.Çok güzel paylaşımlarınız var.İsminizi gördüğüm her konuyu okumaya ve anlamaya çalışıyorum.
Saygılar.
 

 

panoramaharem panoramaharem netortami.net Kimlik Onayı
  • Üyelik 29.09.2011
  • Yaş/Cinsiyet 35 / E
  • Meslek Web Master
  • Konum İstanbul Anadolu
  • Ad Soyad E** Y**
  • Mesajlar 178
  • Beğeniler 45 / 23
  • Ticaret 0, (%0)

isousluer adlı üyeden alıntı

Hepimiz insanız. :D

Ek Olarak: Ne demek Kerem. :)


Çok güzel bir konu, ellerinize emeklerinize sağlık.
 

 

isousluer isousluer Usluer Kullanıcı
  • Üyelik 05.04.2011
  • Yaş/Cinsiyet 31 / E
  • Meslek Yazılım Geliştirici
  • Konum Konya
  • Ad Soyad İ** U**
  • Mesajlar 4900
  • Beğeniler 1419 / 2962
  • Ticaret 45, (%100)
Teşekkür ederim yorumlar için. :)
 

 

b3yaz b3yaz WMAracı Kullanıcı
  • Üyelik 02.05.2011
  • Yaş/Cinsiyet 31 / E
  • Meslek Diğer
  • Konum Diğer
  • Ad Soyad M** B**
  • Mesajlar 2048
  • Beğeniler 69 / 125
  • Ticaret 18, (%100)
Teşekkürler, ellerine sağlık.
 

 

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)