- Konu sahibi
- #1
WordPress şablon hiyerarşisi, ziyaretçinin açtığı sayfanın türüne göre tema klasöründeki en özel şablonu arar ve bulduğu ilk uygun dosyayı kullanır. Dosya bulunamazsa daha genel bir dosyaya, en sonunda da çoğu klasik temada
Bir ziyaretçi
WordPress, en özel adaydan en genel adaya doğru ilerler. Örneğin “Haberler” kategorisinin arşivi için genel bir
İlk dosya mevcutsa sonraki dosyalar kullanılmaz. Böylece yalnızca belirli bir kategoriye özel tasarım yapabilir, diğer kategorileri genel şablona bırakabilirsiniz.
Aşağıdaki tablo, hangi dosyanın hangi içerik görünümünü kontrol etmek için kullanılacağını hızlıca gösterir:
Örneğin yalnızca “hakkimizda” sabit sayfasını değiştirmek istiyorsanız
Dosyanın seçildiğini anlamanın en pratik yolu, yalnızca geliştirme ortamında şablona ayırt edici bir başlık veya geçici HTML metni ekleyip ilgili sayfayı yenilemektir. Metin görünmüyorsa yanlış şablonu düzenliyorsunuzdur veya tema, blok şablon sistemi kullanıyordur.
Şablon türünün önceliği ile child/parent dosya önceliği farklıdır. Daha özel bir parent şablonu varken yalnız genel child şablonu eklemek onu otomatik geçersiz kılmayabilir; aynı aday için child sürümü önceliklidir.
Klasik temalarda hiyerarşi çoğunlukla PHP dosyaları üzerinden işler. Blok temalarda ise görünüm; temanın templates klasöründeki .html blok şablonları (örneğin templates/single.html ve templates/index.html) ve
En yaygın hata, ana sayfa ile yazı listesini aynı sanmaktır.
Ayrıca bir dosyanın yalnızca var olması, mutlaka kullanılacağı anlamına gelmez. Daha özel bir dosya, yönetim panelinde kaydedilmiş blok şablonu veya özel bir tema ayarı çıktıyı değiştirebilir. Değişikliği önce dar kapsamlı bir şablonda test edin; doğru sonucu aldıktan sonra ortak yapıyı genel şablona taşıyın.
Tekil yazı görünümünde kategori şablonu seçilmez; yazı için
Dosya adı hiyerarşide tanınan kalıba uymuyor olabilir. Ayrıca daha özel bir dosya, blok temada kaydedilmiş bir düzen veya önbellek eski çıktıyı gösteriyor olabilir. Önce hedef URL'nin türünü ve temanın türünü doğrulayın.
index.php dosyasına geri döner. Bu nedenle doğru dosya adını seçmek, bir sayfanın görünümünü değiştirmeden önceki temel adımdır.Hiyerarşi mantığı
Bir ziyaretçi
ornek.com/urunler/ adresindeki bir yazıyı açtığında WordPress önce içeriğin türünü belirler. Bu içerik tekil yazıysa single.php ailesini, kategori arşiviyse category.php ailesini, sabit sayfaysa page.php ailesini değerlendirir.WordPress, en özel adaydan en genel adaya doğru ilerler. Örneğin “Haberler” kategorisinin arşivi için genel bir
archive.php dosyasından önce şu dosyaları arayabilir:category-haberler.phpcategory-7.php— kategorinin varsayımsal kimliği 7 isecategory.phparchive.phpindex.php
İlk dosya mevcutsa sonraki dosyalar kullanılmaz. Böylece yalnızca belirli bir kategoriye özel tasarım yapabilir, diğer kategorileri genel şablona bırakabilirsiniz.
Yaygın şablon türleri
Aşağıdaki tablo, hangi dosyanın hangi içerik görünümünü kontrol etmek için kullanılacağını hızlıca gösterir:
| Görünüm | Öncelikli dosya örnekleri | Genel geri dönüş |
|---|---|---|
| Ön sayfa son yazıları gösteriyor | front-page.php | home.php → index.php |
| Ön sayfa sabit sayfa | front-page.php | Atanmış sayfa şablonu → page-slug.php → page-id.php → page.php → singular.php → index.php |
| Ayrı yazı listesi sayfası | home.php | index.php; bu sayfaya atanmış normal page template esas alınmaz |
| Blog yazısı | single-{tür}-{slug}.php → single-{tür}.php → single.php | singular.php, index.php |
| Sabit sayfa | Atanmış özel sayfa şablonu → page-{slug}.php → page-{id}.php | page.php → singular.php → index.php |
| Kategori arşivi | category-{slug}.php, category-{id}.php | category.php → archive.php → index.php |
| Arama sonucu | search.php | index.php |
| Bulunamayan sayfa | 404.php | index.php |
Örneğin yalnızca “hakkimizda” sabit sayfasını değiştirmek istiyorsanız
page-hakkimizda.php dosyası oluşturabilirsiniz. Bu dosya yoksa WordPress page.php dosyasına, o da yoksa daha genel şablona geçer. Yazı türleri için benzer biçimde single-urun.php, taksonomi arşivleri için taxonomy-{taksonomi}-{terim}.php kullanılabilir.Uygulanabilir çalışma yöntemi
- Değiştirmek istediğiniz URL'nin görünüm türünü belirleyin: ana sayfa, blog listesi, tekil yazı, sabit sayfa, kategori, özel yazı türü veya arama sonucu.
- Temanızın dosyalarını inceleyin ve en özel uygun dosyanın mevcut olup olmadığını kontrol edin. Dosya adı, içerik türünün slug değeriyle doğru yazılmalıdır.
- Klasik temada özel bir görünüm gerekiyorsa dosyayı mümkünse alt temaya ekleyin. Ana temaya doğrudan yapılan değişiklikler tema güncellemesinde kaybolabilir.
- Örneğin yalnızca “duyurular” kategorisini değiştirmek için alt temada
category-duyurular.phpoluşturun ve genel kategori şablonundan gerekli yapıyı kopyalayıp düzenleyin. - Önizlemede doğru URL'yi açın. Değişiklik görünmüyorsa daha özel bir dosyanın zaten devrede olup olmadığını ve önbelleğin eski çıktıyı göstermediğini kontrol edin.
Dosyanın seçildiğini anlamanın en pratik yolu, yalnızca geliştirme ortamında şablona ayırt edici bir başlık veya geçici HTML metni ekleyip ilgili sayfayı yenilemektir. Metin görünmüyorsa yanlış şablonu düzenliyorsunuzdur veya tema, blok şablon sistemi kullanıyordur.
Şablon türünün önceliği ile child/parent dosya önceliği farklıdır. Daha özel bir parent şablonu varken yalnız genel child şablonu eklemek onu otomatik geçersiz kılmayabilir; aynı aday için child sürümü önceliklidir.
Klasik tema ile blok tema farkı
Klasik temalarda hiyerarşi çoğunlukla PHP dosyaları üzerinden işler. Blok temalarda ise görünüm; temanın templates klasöründeki .html blok şablonları (örneğin templates/single.html ve templates/index.html) ve
parts klasöründeki şablon parçalarıyla yönetilebilir. Bu durumda WordPress yönetimindeki Site Düzenleyicisi, dosyadaki varsayılan şablonun üzerine kaydedilmiş bir düzeni kullanabilir. Bu yüzden PHP dosyasını değiştirmeden önce kullanılan temanın klasik mi blok tabanlı mı olduğunu ve ilgili şablonun yönetim panelinde özelleştirilip özelleştirilmediğini kontrol edin.Sık yapılan hatalar
En yaygın hata, ana sayfa ile yazı listesini aynı sanmaktır.
front-page.php sitenin ön sayfasını; home.php ise yazıların listelendiği blog sayfasını hedefler. Bir diğer hata slug yerine görünen başlığı kullanmaktır: “Hakkımızda” sayfasının dosya adı genellikle page-hakkimizda.php olur; boşluk ve büyük harf kullanılmamalıdır.Ayrıca bir dosyanın yalnızca var olması, mutlaka kullanılacağı anlamına gelmez. Daha özel bir dosya, yönetim panelinde kaydedilmiş blok şablonu veya özel bir tema ayarı çıktıyı değiştirebilir. Değişikliği önce dar kapsamlı bir şablonda test edin; doğru sonucu aldıktan sonra ortak yapıyı genel şablona taşıyın.
Kaynaklar
Sık sorulan sorular
Bir içerik birden fazla kategoriye aitse hangi kategori şablonu kullanılır?
Tekil yazı görünümünde kategori şablonu seçilmez; yazı için
single.php ailesi kullanılır. Kategori arşivi açıldığında ise o arşivin kendi slug veya kimliğine uyan kategori şablonu devreye girer.Şablon dosyasını yeniden adlandırınca neden görünüm değişmedi?
Dosya adı hiyerarşide tanınan kalıba uymuyor olabilir. Ayrıca daha özel bir dosya, blok temada kaydedilmiş bir düzen veya önbellek eski çıktıyı gösteriyor olabilir. Önce hedef URL'nin türünü ve temanın türünü doğrulayın.