WordPress’te birden fazla Single.php sayfası

24 Aralık 2015 - 30 Okunma
WordPress’te birden fazla Single.php sayfası
WordPress’te built-in olarak dolu özellik bulunmakta. Bu konuda anlatacağımda WP’nin zaten içinde bulunan bir özellik. Bu özelliklere değinmeye başlarsak. Bunlardan ilki Category.php tema dosyasında bulunan bir özellik. Mesela WordPress her kategori sayfasının farklı olmasını istersek diye bize bir özellik sunmuş. Temamızı kayıt ederken Kategori dosya ismini category-XX.php olarak değiştirirsek (XX yerine kategorinin ait olduğu ID […]

WordPress’te built-in olarak dolu özellik bulunmakta. Bu konuda anlatacağımda WP’nin zaten içinde bulunan bir özellik.

Bu özelliklere değinmeye başlarsak. Bunlardan ilki Category.php tema dosyasında bulunan bir özellik. Mesela WordPress her kategori sayfasının farklı olmasını istersek diye bize bir özellik sunmuş.

Temamızı kayıt ederken Kategori dosya ismini category-XX.php olarak değiştirirsek (XX yerine kategorinin ait olduğu ID numarasını yazmalısınız, örneğimizde bu ID “9” olsun) Bu ID ye ait kategori seçildiğinde, WP category.php deki görünüm tipi yerine category-9.php yi kullanarak, o dosya içindeki görünümü sitenize sunacaktır.

Bu özellik basit ama etkili bir çözümdür. Bunun gibi örnekler net üzerinde zaten bulunmaktadır.

Bu olayın ardından single.php dosyasında da buna benzer birşey yapıp, yapamadığımızı araştırdım ama single.php için Kategoriye göre farklı sayfa sunma özelliği yoktu. Örnek olarak 2 farklı tipte yazımız olsun, biri Video içeriği olsun, diğeriyse düz yazı. Görünümü kolaylaştırmak için Category.php leri iki ayrı tipe göre ayarladık ama single.php ye geldiğimizde Yazı için nasıl bir görünüm varsa, Video konumuz içinde aynı yazının olduğunu görürüz.

Bu pekte elverişli bir yapı değildir. İşte bunu kırmak için aşağıdaki gibi bir kod işimize yarayabilir.

Aşağıdaki kodu yazmadan önce yapmamız gereken bir-iki küçük şey var;

  • Single.php dosyanızı açın ve içerisindeki herşeyi ya silin yada başka yere taşıyın.
  • Single.php içinde sadece kategoriye göre davranmasını sağlayacak kodu olacak.
  • İki tane ayrı single.php dosyası yapın ama isimleri eşsiz olmalı ve tema dosyalarına benzememeli. Örneğin single-video.php ve single-yazi.php olabilir.
  • Bu iki dosyayı isteğinize göre ayarlayın.
  • Son işlem aşağıdaki değişim kodunu single.php içine kopyalayın.
<?php
if (in_category('21')) {include (TEMPLATEPATH . '/single-video.php');
}
else { include (TEMPLATEPATH . '/single-yazi.php');
}
?>

Buradaki kodu incelersek eğer 21 ID nolu kategoriye sahip bir konuysa sistem single-video.php ye göre kendini ayarlıyor, eğer bu kategori dışındaysa da bize single-yazi.php ye göre bir görünüm sunuyor. İşte bu kadar basit.

Yapılan olayı kavramışsanız, çözüme ne kadar basit ulaştığımızı da görmüşsünüzdür. Kodla ilgili bir sorunuz olursa bu yazının altına yazabilirsiniz. Sorularınızı bekliyorum. Sağlıcakla Kalın.

ITC | İlkteknoloji