WordPress Kategori Şablonu hakkında geniş bilgiler vereceğim. Bu yazıdan sonra her kategoriye ayrı yazılar yazabilicek yada her kategoriye ayrı listelemeler yapıcaksınız. WordPress Codex’ten faydalanarak hazırladığım bu yazıyı dikkatlice okuyunuz.
WordPress’in ne kadar gelişmiş bir sistem olduğunu tekrar tekrar anlayacaksınız.
WordPress Category Templates
WordPress Temalarda hep aynı şey mevcuttur. Her kategoride en son açılan konu mevcuttur ve her kategori aynı sayfayı kullanmaktadır. Her kategoriye farklı seçimler yaparak çok güzel tasarımlar elde edebilirsiniz.
Başlık, yazar, yayınlama tarihi, son değişiklik zamanı, vb gibi ekstralardan ziyade resim kategorisinde sadece resimlerin olduğu, video kategorisinde videoların ufak ufak yan yana gelmesi gibi bir çok ayarı yapabilirsiniz. Yani her kategorinizi farklı bir siteymişcesine kodlayabilirsiniz.
Bu makalede blog sitenizin kategori sayfalarını nasıl değiştirebiliceğinizi açıklıyorum.
Hangi Şablon Dosyası Kullanılır?
Birisi Kategori sayfasını ziyaret ettiğinde ilk olarak kategori mesajı daha sonra kategoride bulunan içerikler listelenir. Bu bir şablon hiyerarşisidir. Tüm WordPress temaları bu hiyerarşiye göre kodlanır ve geliştirmek yani zenginleştirmek sizin elinizdedir.
Kategori halinde hiyerarşi oldukça kolaydır. Örneğin rooteto kategorimiz var ve bu kategorinin ID 1 olduğunu varsayalım. WordPress Hiyerarşik olarak aşağıdaki listeden tema dizininde bulunan ilk şablon dosyasını kullanıcağını belirtir.
- category-slug.php (Not: Version 2.9 ve üstü)
- category-ID.php
- category.php
- archive.php
- index.php
Slug Kısa ismi yani başlık olarakta algılayabilirsiniz. Sistem 1-2-3-4 ve 5 olarak sırayla tarar zaten her temada mutlaka category.php yada archive.php vardır.
1. Kategori adı rooteto dedik 1.seçenek ile oluşturalım: Kullandığımız tema klasörü içerisine “category-rooteto.php” adında bir klasör oluşturun ve kullandığınız archive.php kodunun aynısını yapıştırıp kaydedin. Daha sonra “category-rooteto.php” dosyası üzerinde bir kaç değişiklik yapın. Değişikliğin rooteto kategorisine yansıyacağını fark edebilirsiniz.
2. Eğer sistem 1 numarayı bulmazsa 2’i arıycaktır. Oda şu şekilde rooteto kategori ID’si 1 demiştik onuda hemen oluşturalım. “category-1.php” adında bir dosya oluşturursanız oda rooteto kategorisine özel olucaktır.
Eğer 1 ve 2 yoksa 3 kesinlikle temanızın klasöründe bulunuyordur. Genede yoksa archive.php vardır. Önemli olan yukarıdaki sıra ile okumaya başladığını bilmek.
Örnekler
Şimdi sizlere bazı örnekler vericem. Bazı kategorilere özel şablon oluşturmak ve bu şablonları zenginleştirmek gibi örnekler bunlar. WordPress’in sade olarak verdiği archive.php ile örnekler olduğu için rahat anlatacağım ancak kullandığınız temanın daha çok kodu olabilir kafanız karışmasın.
Örnek archive.php
<?php /* Template Name: Arşiv */ get_header(); ?> <div id="container"> <div id="content" role="main"> <?php the_post(); ?> <h1><?php the_title(); ?></h1> <?php get_search_form(); ?> <h2>Archives by Month:</h2> <ul> <?php wp_get_archives('type=monthly'); ?> </ul> <h2>Archives by Subject:</h2> <ul> <?php wp_list_categories(); ?> </ul> </div><!-- #content --> </div><!-- #container --> <?php get_sidebar(); ?> <?php get_footer(); ?>
Kategori Sayfalarına Metin Ekleme
Metin ve Link eklemek basit iştir yukarıdaki archive.php dosyasının bir kopyasını alarak archive-rooteto.php yaptık ve rooteto kategorisinde üst kısımda metin ekleyeceğiz.
get_header();
Yukarıdaki kodun hemen alt kısmına metinler girebilirsiniz link eklemek için aşağıdaki kodu kullanın.
<p> Bu metin kategoride sayfanın en üst kısmına eklenicek. </p>
Bazı kategorilere farklı metin ekleme
Diyelimki ziyaretcilerinizin kategorilerde dolaşırken açıklamaları görmesini istediniz. Yani her kategoride farklı açıklama ve hatta tatmin edici güzel açıklama eklemek istediniz bunun için alttaki kodu kullanmanız yeterli.
<?php if (is_category('Category A')) : ?> <p>This is the text to describe category A</p> <?php elseif (is_category('Category B')) : ?> <p>This is the text to describe category B</p> <?php else : ?> <p>This is some generic text to describe all other category pages, I could be left blank</p> <?php endif; ?>
Aslında yukarıdaki kod benim kesinlikle önericeğim bir yol veya yöntem değil. Zaten her kategori için farklı php dosyaları oluşturduğumuz için her kategori için tek tek güzel bir açıklama girilebilir.
Kategori sayfalarında farklı metinler
Rooteto Kategorisinde her sayfada farklı metinlerde girebilirsiniz. ilk sayfada güzel bir yazı ikinci sayfada daha farklı bir yazıda girme şansınız var.
<?php if ( $paged < 2 ) : ?> <p>root makalelerinin son çıkanları burada.</p> <?php else : ?> <p>Bunları kesinlikle kaçırmamanız gerekiyor..</p> <?php endif; ?>
Kategori Adı
Verdiğim örnek kodda Kategori adı malesef yer almıyor. Kategori isminide girmek için alttaki kodu girmeniz gerekiyor.
<p>Category: <?php single_cat_title(); ?></p>
Sonuçta bunlar veritabanından çekilen yazılar eğer temanızda slug yerine ID Kullanırsanız sıkıntı yaşamazsınız kategori adını değiştirseniz bile problem çıkmaz.
Mesaj Gösterimleri
Mesajların nasıl gösteriliceği konusunda önemli bilgiler var. 2 önemli kod birisi tam diğeri yarın diye tabir ettiğimiz bir şekilde çalışıyor. Şimdi inceleyelim.
Tam ve Yarım mesajlar
the_excerpt() Kodu yazının belirli karakterine kadarını gösterir devamı için yazıya tıklamanız gerekiyor. Ancak the_content() yazının tamamını gösterir. Ayraç koyduysanız eğer ayraça kadarını gösterir.
<?php the_excerpt(); ?> and <?php the_content(); ?>
Tüm mesaja bağlantı linki vermek
Bir içerik yazın başlık girin ve daha sonra bir resim ekleyin içeriğe. Bir kaç şey yazdıktan sonra ayraç koyun ve devam edin. Şimdi burada yapmaya çalıştığımız olay şu; Ayraca kadar olan kısım veya excerpt kullandıysanız yazının devamına kadar olan kısımdaki tüm yazılara link vermek.
the_excerpt_rss() Yani eklediğiniz resimede otomatik yazının linkini verebilirsiniz.
<a href="<?php the_permalink() ?>"> <?php the_excerpt_rss(); ?> </a>