WordPress Template Hierarchy Nedir – Detaylı Anlatım

WordPress Template Hierarchy Nedir – Detaylı Anlatım

Eğer WordPress’in tam potansiyelinden yararlanmak istiyorsanız, şablonlar hakkında bilgi edinmek iyi bir seçim olacaktır. WordPress bir sayfa oluştururken, neyin nasıl gözükeceğini belirlemek için şablonları kullanır. Dahası, sayfa öğelerini düzenli tutmak için katı bir hiyerarşiye sahiptir. WordPress template hierarchy, veya Türkçe kısaltması, WordPress şablon sisteminin nasıl çalıştığını öğrenirseniz, sitenizin temasını çok daha kapsamlı şekilde özelleştirebilirsiniz.

WordPress şablon sistemi yedi ana kategoriye ayrılır:

  1. Sitenin ön sayfası
  2. Tekil yazılar
  3. Tekil sayfalar
  4. Kategori ve etiket sayfaları
  5. Özel yazı türleri (Custom post types)
  6. Arama sonuçları sayfaları
  7. 404 hata sayfaları

Bu rehberde WordPress şablon sistemini veya hiyerarşisi üzerinde duracağız. Aynı zamanda, kullandığınız temaların sitenizini gösterebilmek için şablonları nasıl kullandığını anlatacağız. Anlatacak çok şey var, o yüzden bir an önce başlayalım!

WordPress Şablon Dosyaları Hakkında Genel Bilgi (Ve WordPress Temalarıyla İlişkileri)

Basit bir statik web sitesi oluşturduğunuzda, sitenin görünümünü özelleştirmek için genellikle HTML ve CSS kullanırsınız. Diğer yandan, WordPress çok daha güçlüdür. Platform, PHP yazılım dilini temel alır ve sayfalarınızın her bir bölümünün nasıl görüneceğini belirlemek için çeşitli .php dosyaları kullanır.

Örneğin, bu yazının sağ kısmına bakın. Blog bölümümüzden diğer yazıların bulunduğu bir kenar çubuğu bulunuyor. Tarayıcınız WordPress’e bu yazıyı yüklemesini söylediğinde, WordPress bir tanesinin adı sidebar.php olan bazı ‘şablon’ dosyalarını çekti. Bu dosya, şu an gördüğünüz kenar çubuğunu ve içindeki öğelerin gösterilmesini sağladı.

WordPress kenar çubuğu örneği

Kenar çubukları tabi ki sayfanın sadece bir parçası. Çoğu WordPress sayfası çalışabilmek için birden fazla şablona ihtiyaç duyuyor ve bunlara aşağıdakiler dahil:

  • index.php
  • header.php
  • sidebar.php
  • footer.php
  • functions.php
  • single.php
  • comments.php

Unutmayın, bunlar WordPress’de bulacağınız şablonlardan sadece bazılarıdır. header.php, sidebar.php ve footer.php özellikle çok önemli çünkü ‘template partials’ yani ‘partial şablonlar’ olarak da bilinirler. Bunun anlamı, çeşitli diğer şablonlara gömülebilir olmalarıdır.

WordPress’in sayfaları oluştururken ki tavrı ilk başta biraz kompleks görünebilir. Ancak oldukça verimli bir işlemdir. Eğer sitenizdeki her bir sayfa için özel bir şablonunuz olsaydı, özelleştirme işlemi bir kabusa dönüşebilirdi. WordPress şablon konusundaki modüler yaklaşımı sayesinde, tek bir dosyada yapacağınız değişiklik, ihtiyacınız olduğu zaman tüm sitede uygulanabilir hale gelmektedir.

Her bir sayfa için hangi şablonun kullanılacağını belirlemek gerektiğinde, WordPress’in ilk yapacağı şey hangi temayı kullandığınızı kontrol etmek olacaktır. Her bir tema, diğerleri arkada bırakacak olan kendi şablon setine sahiptir. İşte tam da bu süreç WordPress template hierarchy olarak adlandırılıyor ve sıradaki bölümde bunun üzerinde duracağız.

Şimdi WordPress’in sayfalarınızı nasıl oluşturduğunu anladığınıza göre, temaların aslında bir dizi şablon dosyalarından fazlası olmadığını öğrenmeye başlayabiliriz. Pratik olarak, bir temanın çalışabilmesi için tek bir şablon yeterlidir ve bu şablon index.php‘dir. Ancak bir çok tema, çok daha fazla şablon içerir. Temanın sahip olmadığı herhangi birşey için, WordPress hiyerarşi düzeninde bulunan sıradaki öğeyi kullanarak boşlukları tamamlar.

WordPress Template Hierarchy Nasıl Çalışır

Son bölümde, sizlere bazı WordPress şablon dosya örnekleri gösterdik. Ancak bu dosyalar, bir sayfa veya yazı yüklendiğinde kullanılabilecek olan şablonlardan sadece birkaçıdır. WordPress şablon hiyerarşisi, hangi şablonların hangi sırayla kullanılacağını belirleyen bir sistemdir.

Varsayalım, hosting kategorisinde bir sayfayı yüklemek istediniz. Arka planda olan şey şudur:

  1. WordPress mevcut temanızın dizininde category-hosting.php dosyasını arar.
  2. Eğer category-hosting.php dosyası bulunmuyorsa, WordPress kategori numarasını kullanan bir başka dosya arar, örneğin category-2.php.
  3. WordPress bu iki seçenekte de başarısız olursa, bu sefer jenerik bir category.php dosyası arar.
  4. Eğer category.php adında bir dosya bulamazsa, WordPress geçmişe bakar ve archive.php şablonunu arar.
  5. Nihayet, bunların hepsi başarısız olursa platform temanızın index.php dosyasını yükler ve bu dosyayı sayfanın şablonu olarak kullanır.

Bazı şablon dosyaları diğerleri üzerinde her daim üstünlük sağlar, bu yüzden hiyerarşinin üzerinde olacak şekilde organize edilmişlerdir. Genel şekilde açıklamak gerekirse, WordPress siteleri yedi kategorideki sayfalardan oluşur ve bu sayfaların her biri katı şekilde belirtilmiş olan bir hiyerarşiyi takip eder. Şimdi bu kategorilerin neler olduğunu ve hiyerarşilerinin nasıl çalıştığını öğrenelim.

WordPress Template Hierarchy Sistemini Parçalara Ayıralım (7 Kategoride)

WordPress söz konusu olduğunda, bütün web siteleri yedi türde sayfaya ayrılabilir. Bu kategorilerden her birinin dahili bir WordPress şablon hiyerarşisi mevcuttur, tek tek inceleyelim.

1. Site Ön Sayfası

Öncelikle, web sitenizin ön sayfasından biraz bahsedelim. WordPress ana sayfanızı yüklediğinde, arayacağı ilk şey front-page.php dosyasıdır. Eğer bu dosya kullanılabilir durumda değilse, platform bu sefer home.php dosyasına dönecektir. İki dosyanın da bulunamaması durumunda bu sefer WordPress index.php dosyasını açacaktır çünkü bu dosya her zaman kullanılabilir durumdadır (bulunmuyor olsa temanız hiçbir şekilde çalışmaz).

Diğer bir deyişle, bu hiyerarşi şu şekilde ayrılır:

  1. front-page.php
  2. home.php
  3. index.php

Bu üç dosya tamamen aynı olsa da, WordPress dahili mantığını takip etmeye devam edecektir. Bu hiyerarşi oldukça basit bir örnektir. Şimdi biraz daha kompleks olan bir sayfa türünü inceleyelim.

2. Tekil Yazılar

WordPress yazıları (rehberimiz gibi) tekil yazı kategorisindedir. Bu bölümün hemen başlarında bazı şablon dosyalarının yazının gösterilmesindeki rolünden bahsetmiştik. Ancak bunlar genellikle dahili öğelerdir. WordPress’in bunları oluşturabilmesi için sayfayı bir bütün olarak göstermek üzere hangi şablonun kullanılacağını belirlemesi lazım.

Tekil yazılar için hiyerarşi şu şekildedir:

  1. single-{post-type}-{slug}.php
  2. single-{post-type}.php
  3. single.php
  4. singular.php
  5. index.php

Bu şablon dosyalarından bazını tanımıyor olabilirsiniz, öncelikle bunları açıklığa kavuşturalım. Listenin ilk sırasında single-{post-type}-{slug}.php bulunuyor. E-ticaret siteleri için daha pratik bir örnek single-product-ca-12.php olabilir. Bir başka deyişle, WordPress yüklemek istediğiniz her bir yazı için kendi kategorisi içinde özel bir şablon arayacak. Eğer platform ilgili bir şablon bulamazsa, single-{post-type}.php dosyasına dönecek ve bulamazsa bir aşağıya, ta ki tekrar index.php dosyasına ulaşana kadar.

Pratikte, bu yaklaşım sizlere bireysel yazılar veya ürünler için özel şablonlar tasarlama imkanı sağlar. Eğer tüm yazılarınız için tek bir şablon kullanmak isterseniz, bu durumda single.php dosyası işinizi görecektir.

3. Tekil Sayfalar

Tekil sayfalar WordPress’de kendi kategorilerini oluşturuyor. Örneğin, Hostinger sitesini bir bütün olarak elalım. https://www.hostinger.web.tr bizim anasayfamız ve erişim sağlandığında front-page.php şablonunu yüklüyor. https://www.hostinger.web.tr/web-hosting gibi host sitesinin diğer bölümleri ise tekil sayfalar kategorisi içinde yer alıyor.

Tekil bir sayfa aşağıdaki hiyerarşiyi takip eder:

  1. Özel şablon dosyası
  2. page-{slug}.php
  3. page-{id}.php
  4. page.php
  5. singular.php
  6. index.php

Listenin en başındakinin bir dosya adı olmadığını farketmişsinizdir. Bunun sebebi, WordPress tekil sayfalar için birden fazla içerik türünü tanıyabilir. Örneğin, bir yazıyla uğraşıyorsanız WordPress varsayılan hiyerarşi olarak daha önce konuştuğumuz sırayı takip eder. Diğer yandan, tekil sayfalar (/web-hosting gibi) doğrudan page-slug.php dosyasına yönelir. Bizim örneğimizde, bu page-web-hosting.php dosyasıdır (tabi böyle bir dosya varsa).

Bunun ardından, hiyerarşi yazılarda olduğu gibi devam eder. Eğer sayfanın özel yapısına uygun bir şablon bulunmuyorsa, WordPress öncelikle numarasıyla eşleşen bir şablon arar ve bulamazsa bir sonrakine geçer. Her zaman olduğu gibi, sıra hep index.php dosyasında son bulur.

4. Kategori ve Etiket Sayfaları

Hatırlayacağınız üzere, kategori hiyerarşisini yazımızın başında bir örnek olarak açıklamıştık. Ancak yine de bu hiyerarşideki şablonları sırayla özetleyelim:

  1. category-{slug}.php
  2. category-{id}.php
  3. category.php
  4. archive.php
  5. index.php

Bu hiyerarşi tekil yazılar ve sayfalarda olduğu gibi aynı şekilde çalışır. WordPress yüklemek istediğiniz kategoriye özel şablonu arar, öncelikle dosya adından başlar ve bulamazsa numarasına onu da bulamazsa category.php dosyasına, ardından archive.php dosyasına geçer. Eğer WordPress arşivinizde bütün kategorilerden yazılar bulunuyorsa, bu hiyerarşi içerisinde bulundurmanız mantıklıdır.

Bu bölüme WordPress etiketlerini de dahil ettik çünkü bu da sınıflandırılabilir bir öğedir. Artı, hiyerarşileri birebir aynıdır, sadece tüm tag.category-{slug}.php içeren kategori durumları tag-{slug}.php halini alır.

5. Özel Yazıl Türleri (Custom Post Types)

Eğer özel yazı türleriyle aşina değilseniz, kısaca özetleyelim. Özel yazı türleri WordPress’in varsayılan sınıflandırmaları içinde bulunmayan içerik türleridir. Örneğin, incelemeler üzerinde yoğunlaşan bir blog siteniz varsa, incelemeler adında bir özel yazı türü oluşturarak bazı ek özelliklerle özelleştirmek isteyebilirsiniz.

Özel yazı türü oluşturma konusunu bir başka yazımıza bırakalım. Şimdilik bu içerik türünün de kendi hiyerarşisi olduğunu bilmek yeterli:

  1. archive-{post_type}.php
  2. archive.php
  3. index.php

Gördüğünüz gibi, bu hiyerarşi diğerleri kadar ayrıntılı değil. Ancak yine de index.php dosyasına ulaşana kadar bazı diğer şablonlar bulunuyor ve bu kompleks sayfalar oluşturmak için yeterli.

6. Arama Sonuçları Sayfaları

Bu son iki WordPress sayfa türüyle birlikte işler biraz daha basitleşiyor. İlk olarak arama sonuçlarımız var, görünümü söz konusu olduğu sürece inanılmaz derece basittirler. Bu basitlik olduğu gibi hiyerarşiye de yansıyor:

  1. search.php
  2. index.php

Bu örnekte, WordPress eğer arama sonuçları sayfanız için özel bir şablon bulamazsa doğrudan index.php dosyasına geçiyor. Çoğu modern temalar yine de arama sayfanız için bir tür özelleştirme şablonu bulunduruyor.

7. 404 Hata Sayfaları

Hata sayfaları, ziyaretçilerinizin asla görmek zorunda kalmamalarını isteyeceğiniz sayfalar olsa da, yine de önemli bir konudur. Varsayılan olarak WordPress özel hata sayfaları bulundurmaz ancak bu sayfaları oluşturmak oldukça kolaydır.

Eğer kendi hata sayfanızı oluşturursanız, WordPress ilk olarak bu şablonu arar. Bu durum aşağıdaki hiyerarşide görülebilir:

  1. 404.php
  2. index.php

Bizce, eğer ortalama miktarda trafik alıyorsanız özel bir hata sayfası oluşturmak mantıklı olabilir. Bu sayede nadiren oluşan hatalar yüzünden ziyaretçileriniz korkup kaçmaz.

WordPress Template Hierarchy Çalışması

Bu son bölüm için, WordPress şablon hiyerarşisinin gerçek bir durumda nasıl çalışacağına bakacağız. Örneğimiz için varsayımsal bir web sitesi kullanacağız.

Bir anasayfaya, birkaç tekil sayfaya ve epey yazıya sahip bir web sitesi oluşturduğunuzu hayal edin. Aynı zamanda bu site için aşağıdaki şablon dosyalarını içeren bir tema kullanıyorsunuz:

  • index.php
  • home.php
  • page.php
  • archive.php
  • category.php

Bu küçük ve düzenli bir şablon dosyası koleksiyonudur ancak bir web siteyi çalıştırmak için oldukça yeterlidir. Bu durumda anasayfayı ziyaret etmek isterseniz, WordPress home.php şablonunu yükleyecektir.

Aşağıda ziyaret edebileceğiniz diğer sayfalar ve bu sayfaların hangi şablon dosyalarını kullanacağını görebilirsiniz:

  • Rastgele bir yazı şablon dosyası olarak index.php dosyasını yükler çünkü bu hiyerarşide farklı bir seçenek bulunmuyor.
  • Ziyaret etmek istediğiniz herhangi kategori category.php dosyasını kullanır çünkü kullanılabilir durumdadır. Eğer olmasaydı, WordPress bu sefer archive.php dosyasına geçecekti.
  • Tekil sayfalarınız page.php dosyasını kullanır, ancak bu kullanılabilir değilse varsayılan olarak index.php şablonuna geçilir.

Kullanabileceğimiz pek çok örnek bulunuyor ancak bu kadarı sitenin nasıl çalıştığını anlamanız için yeterli. WordPress’in hangi şablonları kullanacağı, temanızın hangi dosyaları baz aldığı belirler. Umut ediyoruz ki bu bilgileri gelecekte WordPress template hierarchy ile çalışmanız gerektiğinde referans olarak kullanabilirsiniz.

Sonuç

WordPress şablon hiyerarşisi ilk bakışta kompleks görünebilir. Ancak yukarıdaki bölümlerde hangi şablon dosyalarının hangileri üzerinde üstünlük sağladığını açıkladık. Bu bilgiler sayesinde WordPress temanızda değişiklik yapmak istediğinizde tam olarak hangi dosyayı değiştirmeniz gerektiğini anlayabilirsiniz.

WordPress template hiyerarchy sistemiyle ilgili sorularınız varsa aşağıdaki yorumlar bölümünü kullanarak kolayca bize iletebilirsiniz!

Author
Yazar

Gürkan M.

Gürkan, Amerikan Kültürü ve Edebiyatı mezunu ve Hostinger’da pazarlama asistanı olarak içerik yönetimi, dijital pazarlama ve çevirilerden sorumlu. Küçük yaşta tanışıp o günden bu yana hayatının büyük bir parçası olan internette web geliştirme ve özel olarak WordPress konularıyla yakından ilgileniyor. Ayrıca, pervasız bir gamer.