WordPress Template Hierarchy Nedir? – Ayrıntılı Anlatım
WordPress Template Hierarchy (Şablon Hiyerarşisi), WordPress’in içerik gösteriminde hangi dosyanın kullanılacağını belirlemek için kullandığı esnek ve güçlü bir sistemdir. Bu hiyerarşi, sayfa, yazı, kategori gibi farklı içerik türlerine göre
WordPress’in
hangi şablon dosyasını kullanacağını önceden belirler. Herhangi bir sayfa yüklendiğinde, WordPress şablon dosyalarını belirli bir sıraya göre arar ve bulduğu ilk uygun şablonu kullanır. Bu yapı, temanızda özelleştirmeler yaparken hangi şablon dosyasının ne zaman devreye girdiğini anlamak için büyük bir kolaylık sağlar. Bu makalede, WordPress Template Hierarchy’nin temellerini ve nasıl çalıştığını ayrıntılı bir şekilde ele alacağız.
WordPress Şablon Sistemini Kaç Bölümde İncelemeliyiz?
WordPress’in şablon sistemi 7 ana bölüme ayrılır ve bu bölümleri ele alacağımızdan sadece bu kısımda bu bölümleri sizlere belirtmek istedik.
- Sitenin ön sayfası
- Tekil yazılar
- Tekil sayfalar
- Kategori ve etiket sayfaları
- Özel yazı türleri (Custom post types)
- Arama sonuçları sayfaları
- 404 hata sayfaları
Yazımızın içerisinde bu bölümleri ayrıntılı bir şekilde inceleyeceğiz.
WordPress Şablon Dosyaları Hakkında Genel Bilgi (Ve WordPress Temalarıyla İlişkileri)
Basit bir statik web sitesi oluşturduğunuzda, web sitenin görünümünü özelleştirmek için genellikle:
HTML
ve
CSS
kullanırız. Diğer yandan,
WordPress
çok daha güçlü bir yapıya sahiptir. WordPress, PHP programlama 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.
WordPress, çalışabilmek için çeşitli dosyalara, şablonlara ihtiyaç duymaktadır. bu dosyaların bazıları ise şunlardır:- 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 gelebilir. Ancak oldukça verimli bir işlemdir. Eğer web 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.WordPress Template Hierarchy Nasıl Çalışır?
Yukarıdaki bölümde, sizlere bazı WordPress şablon dosya örneklerinden bahsettik. 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:- WordPress mevcut temanızın dizininde category-hosting.php dosyasını arar.
- Eğer category-hosting.php dosyası bulunmuyorsa, WordPress kategori numarasını kullanan bir başka dosya arar, örneğin category-2.php.
- WordPress bu iki seçenekte de başarısız olursa, bu sefer jenerik bir category.php dosyası arar.
- Eğer category.php adında bir dosya bulamazsa, WordPress geçmişe bakar ve archive.php şablonunu arar.
- Nihayet, bunların hepsi başarısız olursa WordPress 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ığına açıklayalım.
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 bahsetmek gerekiyor. 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, WordPress bu sefer home.php dosyasını arayacaktır. İ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:- front-page.php
- home.php
- 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ı (bu rehber gibi) tekil yazı kategorisinde yer almaktadır. 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ımdır.
Tekil yazılar için hiyerarşi şu şekildedir:- single-{post-type}-{slug}.php
- single-{post-type}.php
- Single.php
- singular.php
- index.php
Bu şablon dosyalarından bazılarını tanımıyor olabilirsiniz, öncelikle bunları açıklığa kavuşturmak gerekiyor. 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 WordPress 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 devam edecektir.
Pratikte, bu yaklaşım sizlere bireysel yazılar veya ürünler için özel şablonlar tasarlama imkanı sunar. Eğer tüm yazılarınız için tek bir şablon kullanmak isterseniz, bu durumda single.php dosyası işinizi fazlasıyla görecektir.3. Tekil Sayfalar
Tekil sayfalar hiyerarşik olarak kendi kategorisini oluşturmaktadır. Bu hiyararşi şu şekilde oluşmaktadır:
- Özel şablon dosyası
- page-{slug}.php
- page-{id}.php
- page.php
- singular.php
- index.php
Listenin en başındakinin bir dosya adı olmadığını fark ettiniz mi? 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 bahsettiğimiz sırayı takip eder. Diğer yandan, tekil sayfalar (/web-hosting gibi) doğrudan page-slug.php dosyasına yönelir. 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 özetlemek istiyoruz:
- category-{slug}.php
- category-{id}.php
- category.php
- archive.php
- 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ı olacaktır.
Bu bölüme WordPress etiketlerini de dahil ettik çünkü bu da sınıflandırılabilir bir öğedir. ayrıca, hiyerarşileri birebir aynıdır, sadece tüm tag.category-{slug}.php içeren kategoridurumları 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 özetleyeceğiz. Ö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 web siteniz varsa, incelemeleradı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ıya bırakabiliriz. Şimdilik bu içerik türünün de kendi hiyerarşisi olduğunu bilmek yeterlidir:- archive-{post_type}.php
- archive.php
- 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 yeterlidir.
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ı sayfası 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:
- search.php
- index.php
Bu örnekte, WordPress 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 bulundurmaktadır.
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:- 404.php
- index.php
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çmayacaktır.
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 bakalım. örnek için varsayılan 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 web site için aşağıdaki şablon dosyalarını içeren bir tema kullandığınızı varsayalım:- 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ı web sitenin nasıl çalıştığını anlamanız için yeterlidir. WordPress’in hangi şablonları kullanacağı, temanızın hangi dosyaları baz aldığı belirler.
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çıklamaya çalıştık. Bu bilgiler sayesinde WordPress temanızda değişiklik yapmak istediğinizde tam olarak hangi dosyayı değiştirmeniz gerektiğini anlayabilirsiniz.
WordPress şablon hiyerarşisi ile ilgili soru ve sorunlarınızı yorum olarak bize bildirebilirsiniz. İyi bloglamalar herkese.