Birden Fazla Single.php Kullanımı

Yükleniyor

WordPress’in tekil yazı şablonu olan single.php’yi farklı kategori, etiket ya da özel koşullara göre farklı şekilde kullanabiliyoruz ve bu zannettiğinizden çok ama çok daha kolay bir şekilde yapılabiliyor.

Sorun:

  • Bir kategorideki (örn: video kategorisi) yazıları farklı bir sayfa şablonunda göstermek istiyorum.
  • Bir özel alan kullanan (örn: ‘video_id’) yazıları farklı bir sayfa şablonunda göstermek istiyorum.
  • Belli kategorilerde sidebar (yan menü) görünmesin istiyorum.
  • Ve bu tarz şeyler.

Çözüm:

Çözüm, az çok kodlama bilen herkesin aşina olduğu if/elseif/else kodlarında.

Öncelikle şu anki single.php dosyanızın bir yedeğini alın. Ne olur ne olmaz.

Daha sonra yine bu single.php’nizin adını single-default.php ya da single-varsayilan.php gibi bir şey yapın. (nedenini birazdan anlatacağım).

Daha sonra muhtemelen daha az kullanılacak single.php nizi hazırlayın. Örneğin x kategori ID’sine sahip xxx kategorisindeki yazıların gösterileceği tekil yazı şablonu için single-xxx.php adında bir sayfa şablonu hazırlayın. Bunun en kolay yolu oluşturduğunuz single-default.php/single-varsayilan.php’yi kopyalayıp üzerinde oynamalar yapmaktır.

Single.php adında yeni bir PHP dosyası oluşturun. İçeriği şuna benzer olsun.


<?php if ( have_posts() ) {

the_post(); rewind_posts();

}

if ( in_category(x)) {

include(TEMPLATEPATH . '/single-xxx.php');

}

else {

include(TEMPLATEPATH . '/single-default.php');

} ?>

Kodun açıklaması

if(have_posts()) kodu ile yazı olup olmadığını kontrol ettik. Eğer yazı varsa aşağısındaki kodlar uygulanacak, yazı yoksa işlem yapmayacak.

if(in_category(x)) kodu ile x ID’sindeki kategoriye ait yazıları buldurduk. x’i hedef kategorinizin id’si ile değiştirmeyi unutmayın. Birden fazla kategori kullanacaksanız in_category(array(x,y)) şeklinde kullanabilirsiniz.

include(TEMPLATEPATH . ‘/single-xxx.php’) kod parçası ile de single.php’mize single-xxx.php’yi dahil ettik. Böylelikle tekil yazı şablonu olarak single-xxx.php kullanıldı.

Kapanış

Bu yazıda olayın temellerini anlatmaya çalıştım. Basit bir if/else ile işlevsel hamleler yapmak mümkün, bunu göstermeye çalıştım. Biraz kafa yorarak çok farklı şeyler denenebilir. Örneğin yazı ekleme ekranına bir checkbox konularak yan menünün kullanılıp kullanılmayacağı seçilebilir, if(get_post_meta($post->ID, ‘youtube_id’, true)) gibi bir kullanımla YouTube bazlı bir video sitesi oluşturulabilir. Hepsi hayal gücünüze ve soyut düşünme yeteneğinize kalmış.

Birden Fazla Single.php Kullanımı” için 4 yorum

    Author’s gravatar

    Merhaba, bu farklı paylaşımınız için teşekkürler.

    Benim bir kaç gündür üzerinde çalıştığım ve yapmak istediğim bir değişiklik var.

    single.php de player 1

    single2.php de player 2’yi göstermek istiyorum.

    Tıpkı sayfalarda yönetim panelinden şablon seçmek gibi, yazılarda da şablonu belirtmek istiyorum.

    Nasıl yapabilirim?

    İyi çalışmalar.

    Cevapla
    Author’s gravatar

    Merhaba. Şöyle bir eklenti mevcut: <a href="https://wordpress.org/plugins/single-post-template/&quot; rel="nofollow">Single Post Template</a>. Ancak epeydir güncellenmemiş, o yüzden şu anki WordPress sürümlerinde sorunsuz bir şekilde çalışır mı bilemiyorum. Ayrıca şu yazı da epey işinize yarayacaktır: <a rel="nofollow" href="http://www.wpbeginner.com/wp-themes/create-custom-single-post-templates-for-specific-posts-or-sections-in-wordpress/&quot; target="_blank" rel="nofollow">Create Custom Single Post Templates for Specific Posts or Sections in WordPress</a>.

    Cevapla

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir