WP Tema Paneli Yapımı

747 gün önce Beyazıt tarafından yazılmıştır.
anasayfa
anasayfa
anasayfa

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..

1x1.trans 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..
1x1.trans 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..
1x1.trans 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 :)

Konuyla ilgili yorumlar

“WP Tema Paneli Yapımı” için 0 cevap

  1. mabeL diyor ki:

    ellerine sağlık çok güzel olmuş :)

  2. Sinan diyor ki:

    Teşekkürler, böyle birşeyi merak ediyordum. Kaynak olarak kullandığın yerler var mı acaba?

    • Beyaz diyor ki:

      valla ben bir temadadan görüp değiştirdim..temanın adını hatırlamıyorum ama genellikle premium temalar bu yöntemi kullanıyor.

  3. Kemal Gürler diyor ki:

    http://www.wordpress-turkiye.net/wp-tema-paneli-y…

    Bu herif yazını çalmış bir alıntı bile göstermemiş.

  4. Kemal Gürler diyor ki:

    Baktım resimlerde popho yazıyor. Dedim Beyaz'ın reklamını yapıyor heralde :) C/P yapmış direk. Şuna syntax kullanımını da öğretsek aslında, bozuk çıkmış amelenin kodlar :)

  5. ghurjhan diyor ki:

    öperim yavrum. sırf sana asılmak için atıyorum bu iletiyi. :p

    • Beyaz diyor ki:

      tabi öpüceksiniz :D siz hiç ağanın eli öpülmeden kumar hane açıldığını gördünüz mü :D öyle her kolunu sallayan wp sitesi açarsa boğulur o mekanında :D :D

  6. ghurjhan diyor ki:

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

  7. 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

  8. kurtbey diyor ki:

    merhabalar öncelikle size çok teşekkür ederim vermiş olduğunuz bu ders için
    çok işime yaradı yanlız sorun şu   sidebar   da olan kategori id ayarlama yapamadım örneğin:
    <?php wp_list_categories('orderby=name&hide_empty=0&child_of=3&orderby=name&title_li='); ?>
    id  3
    3 olduğu yere   <code><?php </code><code>echo</code> <code>get_option(</code><code>'yerlidizi'</code><code>); ?>  koydum ama  sidebar kayboluyor</code>
    <code><?php wp_list_categories('orderby=name&hide_empty=0&child_of=</code><code><?php </code><code>echo</code> <code>get_option(</code><code>'yerlidizi'</code><code>); ?></code><code>&orderby=name&title_li='); ?></code>
    <code>bu şekil yaptım algılamadı</code>
    <code>nasıl yapmam gerek ilgi ve alakanıza çok teşekkür ederim</code>
    <code>
    </code>
    <code>
    </code>
     

    • Beyazıt diyor ki:

      Keşke biraz php dökümanı okusaydınız hocam :)
      Aşağıdaki kodda iki phpyi iç içe alarak büyük bir hata yapmışsınız..<code>
      </code>
      <code><?php wp_list_categories('orderby=name&hide_empty=0&child_of=</code><code><?php </code><code>echo</code> <code>get_option(</code><code>'yerlidizi'</code><code>); ?></code><code>&orderby=name&title_li='); ?></code>
      Yapmanız gereken kod böyle olacaktı.
      ".get_option('populervideolarsayisi')." kodunu kullanmanız gerekir php kodları arasında..
      Yani alttaki şekilde.
      <code><?php wp_list_categories('orderby=name&hide_empty=0&child_of=</code>".get_option('yerlidizi)."<code></code><code>&orderby=name&title_li='); ?></code>
      <code></code>

      • kurtbey diyor ki:

        dostum yine olmadı oraya yazdığım   id   görmüyor aklımı kaçırcam kaç gündür araştırmadığım yer kalmadı bana yardımcı olursanız çok sevinirim
        msn adresimi eklerseniz çok sevinirim  sade  şu id olayı kaldı lütven  msn adresim
        destek@servisimiz.net
        saygılarımla hocam

  9. kurtbey diyor ki:

    adminpanel.php  deki  kod bu
    array('yabanci', __('Yabancı Kategori ID:','pcv1'), __('Yabancı Kategori ID:','pcv1'),'',''),
    buda sidebar.php deki kod
    <code><?php wp_list_categories('orderby=name&hide_empty=0&child_of=</code>“.get_option(‘yabanci).”<code>&orderby=name&title_li='); ?></code>
    <code>tam olarak id olan kategori görünmüyor bütün kategorileri gösteriyor</code>
    <code>sanırım kodda sorun var
    </code>

  10. ufuk diyor ki:

    “.get_option(‘yabanci).” burada birtane tırnak eksik şöyle olucak
    “.get_option('yabanci').”

  11. kurtbey diyor ki:

    onu yaptım   şmdi sade bu kaldı başka sorum olmucak mümkünse  index.php sayfada videoları gösteriyoruz bu kod var
    <?php query_posts('showposts=20');?>   burdaki 20 yazan yere nasıl  mudahale edebilirim
    <?php query_posts('showposts=“.get_option(‘yabanci‘).”');?>
    bu kodu yemiyor yardımcı olursanız çok sevinirim saygılarımla hocam

  12. zgrkaralar diyor ki:

    bunu resim url resim link gibi yapcağımda
    sonra sayfaya ekleyeceğimiz img kodu nasıl olacak ?
     
    teşekkürler beyaz

  13. zgrkaralar diyor ki:

    Türkçe karekter sorunu yaşıyorum beyazz

  14. Gökhan YILDIZ diyor ki:

    Öncelikle merhaba. Sayenizde sitemin her noktasını panelden kontrol edilebilir hale getirdim. Yanlız birkaç sorunum var. r10'da açtığım konunun linkini buraya kopyalıyorum.
    http://www.r10.net/wordpress/810709-tema-kontrol-…
    Bu konuda yardımcı olabilirseniz çok sevinirim.

  15. devoloper diyor ki:

    Hocam Çok Teşekkür ederim Güzel Anlatım Çok işime Yaradı

Bir Cevap Yazın

anarschi.com © 2007-2011 | anarşik çocuk

Site içerisindeki içerikler izinsiz kopyalanamaz, alıntı yapılamaz.

Powered-Designed and Fucked By Beyazıt K. :)

PS-CSS-WP-WODKA = Gene Gri V2 Teması