Blog > Wordpress > WP Tema Paneli Yapımı

WP Tema Paneli Yapımı

Beyazıt tarafından 23 Ocak 2010 tarihinde yazılmıştır.

Yeni çıkan temalarda gördüğümüz temaya özgü tema panelleri bulunmakta ve bu sayede o bölümden girdiğimiz text,image kodu vb kodlar sayesinde temamızı rahatlıkça yönetebiliyoruz..

Genellikle reklam alanları için ideal bir özellik olup kodlardan tek tek arayıp düzeltmek yerine bu panel sayesinde bir menü ekleyip temanızın yönetimini sağlayabilirsiniz..

Örneğin sitenizde şu an ne yaptığınızı belirtmek istiyorsunuz;

Şu an ne yapıyorum: Oyun oynuyorum gibisinden..Bu kod sayesinde admin panelinden temanızı özelleştirebiliyorsunuz..

popho 500x275 WP Tema Paneli Yapımı

Ben popho temasına entegre etmiştim bir tane..Onu size sadeleştirilmiş hali ve kullanımıyla anlatıyım..

Öncelikle functions.php lerimiz kalabalık olduğu için bunu bir farklı dosya üzerinde yapalım ve sorun çıkarsa tüm kodlar birbirine karışmasın diye ayıralım..

Öncelikle yapmamız gereken functions.php’ye bu klasörü include metoduyla entegre edelim..

<?php

Kodundan hemen sonra

if (file_exists(TEMPLATEPATH.'/adminpaneli.php')) include_once("adminpaneli.php");

kodunu ekliyelim ve şimdi adminpaneli.php üzerinde ayarlamalar yapalım..

Öncellikle php de array kodlarınız bilmeniz size kolaylık sağlayacaktır fakat bilginiz olmasa bile standart kodları kopyalarak menüler oluşturebilirsiniz..

<?php

function wp_popho_menu() {
	// Üstü Menü Özellikleri:
	    add_menu_page(__('Popho V2','popho'), __('Popho V2','popho'), 6, basename(__FILE__) , 'wp_popho_admin', get_bloginfo('template_url').'/resim/adminpaneli.png');
	// Alt menü özellikleri:
		add_submenu_page(basename(__FILE__), __('Popho Ayarlar','popho'),  __('Popho Ayarlar','popho') , 6, basename(__FILE__) , 'wp_popho_admin');
}
add_action('admin_menu', 'wp_popho_menu');

$popho_options = (
	array(

		array(__('Tema Kullanım Ayarları','popho'), array(
			array('telifhaklari', __('Telif Hakları Saklıdır 2010 &copy;','popho'), __('Altkısımda telif hakları yazısı:','popho'),'',''),
			array('facebook', __('','popho'), __('Facebook:','popho'),'',''),
			array('twitter', __('','popho'), __('Twitter:','popho'),'',''),
			array('ustreklamcan', __('','popho'), __('468-60 Üst Reklam Kodunuz:','popho'),__('En üst soldaki 468-60 reklam kodunuzu buraya ekleyin.','popho'),'textarea'),
			array('konuicireklam', __('','popho'), __('Konu Üstü Reklam Kodunuz:','popho'),__('Konu içinde başlığın hemen altına reklam kodunuzu eklemek için buraya reklam kodunuzu ekleyin.','popho'),'textarea'),
			)
		),
		array(__('Reklam Kutusu','popho'), array(
			array('enable_reklamkutusu', 'no', __('Reklam Kutusu Olsun Mu?','popho'),__('Sağ tarafta reklam kutusu özelliği','popho'),'yesno'),
			array('reklamcanyan', __('','popho'), __('Reklam Kodlarınız','popho'),'','textarea'),
			)
		)
	)
);

foreach($popho_options as $section) {
	foreach($section[1] as $option) {
		add_option($option[0], $option[1]);
	}
}

function wp_popho_admin_css() {
	?>

	<?php
}
add_action('admin_head', 'wp_popho_admin_css');

function wp_popho_admin() {

	global $popho_options;

	if ($_POST['save_popho_options']) {

		foreach($popho_options as $section) {
			foreach($section[1] as $option) {
				update_option($option[0],stripslashes($_POST[$option[0]]));
			}
		}

		/* Başarılı */
		echo '<div id="message" class="updated fade"><p><strong>'.__('Ayarlarınız çok sexi biçimde kaydedildi :)','popho').'</strong></p></div>';
	}
	?>

	<div class="wrap">
		<h2><?php _e('Popho V2 Portal Teması Yönetim Paneli', 'popho'); ?></h2>
		<form method="post" action="admin.php?page=adminpaneli.php" id="popho_form">
			<?php
			foreach($popho_options as $section) {
				echo '<h3>'.$section[0].'</h3><div class="popho_section"><table cellspacing="0" cellpadding="0" class="form-table">';
				foreach($section[1] as $option) {
					echo '<tr valign="top">';

					echo '<th><label for="'.$option[0].'">'.$option[2].'</label></th><td>';

					if ($option[4]=='yesno') {
						$yes = '';
						$no = '';
						if (get_option($option[0])=='yes') $yes='selected="selected"'; else $no='selected="selected"';
						echo '<select name="'.$option[0].'">
							<option value="yes" '.$yes.'>'.__('Yes','popho').'</option>
							<option value="no" '.$no.'>'.__('No','popho').'</option>
						</select>';
					} elseif ($option[4]=='textarea') {
						echo '<textarea id="'.$option[0].'" name="'.$option[0].'" cols="40" rows="4">'.get_option($option[0]).'</textarea>';
					} elseif ($option[4]=='select_options') {
						$selected = '';
						echo '<select name="'.$option[0].'">';

						$names = explode('|', $option[5]);
						$values = explode('|', $option[6]);
						$selected = get_option($option[0]);

						$loop = 0;

						if ($names) {
							foreach ($names as $name) {

								echo '<option value="'.$values[$loop].'" ';

								if ($selected==$values[$loop]) echo 'selected="selected"';

								echo '>'.$name.'</option>';

								$loop++;
							}
						}
						echo '</select>';
					} else {
						echo '<input type="text" id="'.$option[0].'" name="'.$option[0].'" size="50" value="'.get_option($option[0]).'" />';
					}

					if ($option[3]) echo '<br/><span class="setting-description">'.$option[3].'</span>';

					echo '</td></tr>';
				}
				echo '</table></div><br class="clear" />';
			}
			?>
			<p class="submit" style="text-align:right"><input type="submit" value="<?php _e('Kaydet Bakalım', 'popho'); ?>" name="save_popho_options" /></p>
		</form>
	</div>

	<?php	} ?>

Şeklinde bir panel kullandım..
Burada bilinen çeşitleri yani yes/no,textarea veya normal submitler hakkında çıktılarını anlatıyım..

Örneğin burada

array('telifhaklari', __('Telif Hakları Saklıdır 2010 &copy;','popho'), __('Altkısımda telif hakları yazısı:','popho'),'',''),

Arraydan hemen sonra “telifhaklari” adında bir tanımla yaptık..Bu tanımlamayı sitemizde göstermek için wordpress’in option yani opsiyonel özelliğini kullanıcaz..

<?php echo get_option('telifhaklari'); ?>

Şeklinde footer.php ye eklediğimiz takdirde panelden girilen yazıyı sitemizin alt kısmında yazdıracaktır..

Yes-No özellikleri yani evet hayır özellikleri sayesinde eğer bir şeyi saklamak veya göstermek için kullanabilirsiniz..Kısaca reklam kutusu özelliği eklediniz..Fakat bunu açıp-kapatma özelliği eklemek istiyorsanız

<?php
	if (get_option('enable_reklamkutusu')=='yes') {

			echo ''.get_option('reklamcanyan').'';
		}
			?>

Kodu sayesinde “reklamkutusu” adındaki özellikten evet veya hayır seçeneğini seçtikten sonra “reklamcanyan” opsiyonunu aktifleştirebilirsiniz..

Eğer evet seçmişseniz “reklamcanyan” opsiyonundaki girdiğiniz değeri gösterecektir..Hayır seçmişseniz göstermeyecektir..

Diğer bir özelliği ise textarea yani admin panelinde yazı girmeniz için büyük kutucuklar oluşturmaktır..Bunuda yukarıdaki

array('reklamcanyan', __('','popho'), __('Reklam Kodlarınız','popho'),'','textarea'),

kodundaki gibi kullanabilirsiniz..

Bu kodlama ile ilgili eğer kullanan arkadaşlar olursa eklentiden öte bir panel üzerinden modül eklemeleri gösterek yeni modüller oluşturmayı anlatıcam..

Mesala daha önceden görmüşsünüzdür yan tarafta alkol durumum,aşk durumum gibi bir ajax process bar vardı..Bu tarz menüleri yönetmek için kullanabiliriz bu paneli..

Veya misal single.php de kişisel bilgilerinizi yazdınız..Fakat canınız sıkıldıkça değiştirmek istiyorsunuz..Bir “kisiselbilgi” arrayı oluşturup veriyi oraya entegre ederek oluşturabilirsiniz..

Türetmesi size kalmış :) Şöyle söylim bu panel sayesinde wordpress kodlaması haricindeki opsiyonları çağırmak için yapılmıştır..Misal klasik bir script yazarı istediği gibi sitesine modüller eklerken her ne kadar imkanımız geniş olsa da kısıtlıydı wordpress’te..Bu şekilde sınırları biraz daha zorlayabiliriz :)

Bir örnek kullanım vermek istedim..
scc 500x148 WP Tema Paneli Yapımı

şeklinde panelden mesala bir veri girdik..Ve yukarıda verdiğim get_option kodu sayesinde footer.php ye yazdırdık..
ppv2 500x57 WP Tema Paneli Yapımı

Önemli Not: Temalarınızı ve dosyalarınızı kullanmadan önce lütfen yedekleyin..Ayrıca sitenizde yapmadan önce “localhost” üzerinde deneme yaptıktan ve ayarladıktan sonra tema dosyalarınızı yükleyin..

Bide küçük ayrıntı..Yan tarafta menünüzün yanında iconda çıksın istiyorsanız resim klasörü altında adminpaneli.png diye 16×16 Boyutların da bir icon kullanabilirsiniz :)

224 gün önce yazılmıştır.
"WP Tema Paneli Yapımı" bu yazı 23 Ocak 2010 tarihinde saat 03:43 sularında "Wordpress" kategorisinde yayınlanmış olup "Beyazıt" tarafından yazıldığı sanılmaktadır..Ve sayaçların yaptığı açıklamaya göre 1.823 kere okunduğu söylenmektedir..Ayrıca 12 Yorum yazılmıştır.
Yorum Sayfaları: 1 2
  1. ghurjhan diyor ki:

    aynı zamanda aklını da alırım.

  2. Emre DUMAN diyor ki:

    Beyaz sana zahmet şu select_options olayına da örnek versene.Yani ben evet-hayır şeklinde değil de mesela ay ekleyecem ocak-şubat gibi.Bunu da herhalde select_options ile yaparım yukarıdaki kodlara göre ama nasıl yapacağımı bilemedim bi yardım edersen sevinirim

Bu Yazı Hakkında Birşeyler Demek İstermisiniz?





2007-2010 © Anarschi.Com | anarşik çocuk

Site içerisindeki yazılar izinsiz kopyalanamaz,çoğaltılamaz.

Kullanım Koşulları | İletişim

Alt Yapı: Wordpress Hosting Sponsoru: WebGrup

CSS-XHTML-WP: Anarşik Çocuk

"Teknoloji ve Hayat'a Dair istinaden yorumlar."