Bugün yine WP’nin dosyalarını karıştırırken farkettiğim bir konuya da değinmek istiyorum. Örneğin bir tema oluşturdunuz, ve bu temanın single.php’deki header dosyası, anasayfadakinden farklı olsun istiyorsunuz.
İşte tam bunun için, WP’nin bize sağladığı bir güzellik var
Daha önceden belki bir kaç yerde görmüşsünüzdür,
<?php get_sidebar('right'); ?>
kodunu kullanarak, sidebar-right.php dosyasını kullanmanızı sağlarlar. Bu fonksiyon için bir kaç yerde, sadece right ile kullanılabilir diye not düşmüşlerdi. Ancak durum öyle değilmiş
Buradan hemen konumuza geri dönelim. Anasayfada kullandığınız dosya, bildiğiniz gibi index.php dosyasıdır.
Bir index.php dosyası ve yine benzer şekilde bir single.php dosyası genelde aşağıdaki yapıda olur:
<?php get_header(); ?> <!-- burada biraz içerik --> <?php get_sidebar(); ?> <?php get_footer(); ?>
Şimdi burada bizim istediğimiz, single.php için, yani yazıya girildiğinde ekrana gelen sayfa için, farklı header, footer ve sidebar kullanmak.
Örneğin, single.php içerisinde kullanmak istediğimiz dosyalar şunlar olsun:
- header-wpu.php
- sidebar-semih.php
- footer-single.php
O zaman single.php içerisindeki kodu şu şekilde düzenliyoruz:
<?php get_header('wpu'); ?>
<!-- burada biraz içerik -->
<?php get_sidebar('semih'); ?>
<?php get_footer('single'); ?>
Bu düzenlemeyi yaptıktan sonra belirlenen dosyaları kullanabiliyoruz
Sizin de farkedebileceğiniz üzere, bu fonksiyonların yapısı şu şekildedir:
<?php
get_header('isim');
//Tema klasöründen header-isim.php dosyasını alır.
get_sidebar('isim');
//Tema klasöründen sidebar-isim.php dosyasını alır.
get_footer('isim');
//Tema klasöründen footer-isim.php dosyasını alır.
?>
Yani isteğinize göre, bir isim belirtip, o dosyayı çağırabilirsiniz
Kolay gelsin…

“Temada Sayfalara Özel Header, Footer ve Sidebar Kullanımı” için 25 Yorum var
Merhaba,
Footerda yanyana 3 kolonlu sidebar nasıl yapabiliriz?
teşekkürler
Çok teşekkür ederim.Çok işime yaradı, gerçekten faydalı bir yazı olmuş.Wordpress Codexden fazla birşey anlamıyordum zaten
Merhabalar ;
Semih bey, ben bir spor haber-taraftar sitesi kuruyorum..isteğim şöyle ;
beşiktaş – fenerbahçe – galatasaray kategorilerim mevcut. Bu kategorilere girildiğinde header – sidebar ve footer komple değişsin istiyorum.. Gamenow temasını kullanıyorum ve örneğin beşiktaş sayfasına girildiğinde..
headerda ; tepede logo – sayfa ve kategori butonları ve onun altında fanatik.com.tr deki gibi beşiktaş kulüp bilgileri ve maç fikstürünü gösteren bir navbar hazırladım ve sadece beşiktaş bölümünde bu görünecek..galatasarayda ve fenerbahçe de de kendine özel tabi..
sidebarda ; kategoriye sahip takımın son maç sonucu – fikstürü ve puan durumundaki yeri..
footerda ; kategoriye sahip takımın özel bir tasarım arkaplanı..
bunların hepsini hazırladım ancak bu cat id ayarlamasıyla nasıl kategoriye özel gömebileceğimi çözemedim.. bu isteklerimden sadece sidebar da olsa bana yeter şu aşamada..
ilginiz için teşekkür ederim…
Peki header da 2 ayrı resim varsa 2 sine farklı link nasıl verilir? header.php dosyası ile bunu nasıl sağlarız? Header daki resimlerden biri ana sayfaya diğeri ise başka bir siteye yönlendirme yapabilirmi ?
http://www.wpuzmani.com/son/
Tabi ki de
qüzel makale kendi makalenizmi ?
semih hocam, her kategori için farklı footer oluştursak, bunu yazı açıldığında ilgili kategorinin footerı olarak çekmek mümkün olur mu. saygılar…
tamam semih kardeşim özür dilerim sen yorumları sayfalamışsın görmemişim sayfalamayı.teşekkür ederim
semih bu konuyla ilgili yorumlarımı kullanıma açarmısın rica etsem.burada bana kod vermiştin o kodları alıp kullanmam gerek de teşekkürler
Ben single.php’de farklı sidebar kullanmak için sidebarsingle.php yapıyorum
gerenk yok böyle şeylere
özel şablonlarda işe yarar bi özellik zaten kodlara biraz bakınca direk göze batıyo bu olay
semih kardesim simdi dosya derken notepetde bir doya acıp icine senin verdiğin kodları atıp uzantısını php girip wordprese mi atıcam.biraz daha açıklayıcı olursan sevinirim kardes.çünkü ihtiyacım olan bir yapı bu
semih kardeşim sitem http://www.bahsevarim.net
benim yanda 2tane sidebar ben bunun birinin istatistikler linki tıklayınca görnmesini istemiyorum.senin kodu koydum index tema kaydı
semih kardesim.ben istediğim sayfalarda görünmesini istemiyorum sidebarın onu n için hangi dosyadan kalıdmalıyım bu kodu.örneğin istatistikeler sayfamda yan tarafda sidebarın birisi görünmesin ve bana biraz daha yer açılsın.onun için nerdeki kodu silmeliyim.teşekürler
merhaba semih kardesim paylaşımların yine çok güzel.şimdi burada demek istediğin şey şu mu?
istediğiniz sayfada sidebarı ,Headerı, Footeri kaldıradabilirmiyiz.zira öyleyse ben yapmaya başlayacağım.yani istediğim sayfalarda sidebarın 1 tanesinin görünmesini istemiyorumda.iki tane sidebar var bende.istatistik eklemek istiyorum ama benim sayfalar dar iki tane sidebar olduğu için
Bu konuda söylediğim şey, farklı sidebar kullanımı. Sizin dediğiniz gibi sidebarı kaldırmak için, sidebarın görünmesini istemediğiniz yere göre düzenleme yapmalısınız. Örneğin, sidebarın sayfalarda görünmemesini istiyorsanız, page.php den get_sidebarı silebilirsiniz. yada yazı içeriğinde görünmemesi için, sadece single.php den kaldırabilirsiniz.
Bunun için temaya kod eklemelisiniz. Örneğin eğer sayfanın ismi istatistikler ise,
<?php if(!is_page('istatistikler')) {get_sidebar('1');
get_sidebar('2');
} ?>
gibi bir kod yazarsanız, ismi istatistikler olmayan sayfalarda iki sidebarıda gösterir. Tabi burda sizin sidebarınızın nasıl olduğunu bilmediğim için, böyle bir yanıt verdim. Ama sonuçta kontrol aynı şekilde olacak yani is_page(’isim’) şeklinde.
Eğer belirttiğim şekilde bi dosya oluşturmamışsanız temanın kayması gayet doğal
Tekrar bi okuyun
Örneğin single.php açtığınızda,
<?php get_header(); ?>kodunu görürsünüz.bunun yerine:
<?php get_header('single'); ?>yazarsanız:header-single.php kullanabiliyorsunuz.
include her sürümde işe yaramayabilir hocam
Bu konuya yorum yazmışsanız ve ben o yorumlara cevap vermişsem, yorumlar buradadır. Bugüne kadar spamlar hariç hiç yorum silmedim…? Başka bir konuda olmasın?
File exists fonksiyonu ile dosyanın olup olmadığını kontrol ederek ona göre bir footer çağırılabilir.
Örneğin:
[php]< ?php
$id = $cat->id;
if(file_exists(”footer-$id”)){ get_footer($id); } else { get_footer(); }
?>[/php]
gibi bir fonksiyon kontrol yapıp dosya varsa ilgili footerı yoksa varsayılan footerı getirir. Tabi biraz daha değişmesi lazım yukarıdaki kodların