Ö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/