WordPress Şablon Hiyerarşisine Giriş
Yayınlanan: 2019-12-11WordPress kullanıcılarının hayatlarının bir döneminde sorduğu temel sorulardan biri şudur: WordPress temaları, gördüğümüz içeriğe bağlı olarak farklı sayfalar göstermeyi nasıl başarıyor?
Soru, tamamen yasal olmasının yanı sıra çok ilginç. WordPress, hangi içeriğin oluşturulacağını belirleyebilir ve türüne bağlı olarak bir şablon veya diğerini kullanabilir. WordPress temaları, dinamik öğeler için biraz JavaScript ve stiller ve renkler için CSS içeren, her içerik türü için bir dizi özel şablondan başka bir şey değildir.
Mükemmel, ama… WordPress şablonları gerçekte nasıl çalışır? Bu yazı boyunca adım adım göreceğimiz şey bu.
Başlamadan önce, size bu sorunun cevabını içeren bir resim göstereyim:

Bu, WordPress şablon hiyerarşisidir. Bununla ilgili tüm bilgileri resmi belgeler olan WordPress Codex'te bulabilirsiniz. Bu harika web sitesinde bu hiyerarşi ile etkileşime bile girebilirsiniz.
Temel olarak, WordPress içeriğini oluşturmak için bir şablon hiyerarşisi kullanır. Diğer bir deyişle, WordPress, belirli bir PHP dosyası için etkinleştirdiğiniz tema içinde arama yapar. Varsa WordPress, şablon dediğimiz o dosyayı kullanarak içeriği işler. Olmazsa, WordPress hiyerarşideki bir sonraki en genel şablonu arar. Varsa, WordPress onu kullanır. Aksi takdirde, WordPress hiyerarşide bir sonraki şablonu arar… vb. WordPress temanızda belirli bir şablon dosyası bulamazsa, tüm şablonların en geneli olan varsayılan index.php dosyasını kullanır.
Şimdi, en yaygın WordPress içeriklerinden bazılarının şablon hiyerarşisinde daha ayrıntılı olarak inceleyelim.
Sayfa Şablonları
WordPress'in sayfaları ve basit içerik türlerini oluşturmak için kullandığı şablonları görelim.
Gönderiler ve Özel Gönderi Türleri
WordPress, bir blog gönderisi veya özel bir gönderi türü oluşturmak için temanızdaki aşağıdaki PHP dosyalarına bakar:
-
single-{post-type}-{slug}.php: Belirli bir gönderi veya belirli bir gönderi türü için belirli bir şablon istiyorsanız, bu PHP dosyasını temanızda oluşturmanız gerekir. Adı, gönderi veya başka bir şey (WooCommerce kullanıyorsanız ürün ) olabilen gönderi türü adını ({post-type}) içerir. Ayrıca sümüklü böcek veya kalıcı bağlantıyı da yazmalı, şablon adına istediğiniz gibi adlandırmalısınız. Örneğin, bu gönderi için belirli bir şablon kullanmak istersem,single-post-introduction-to-the-wordpress-template-hierarchy.phpdosyasını oluşturmam gerekir. -
single-{post-type}.php: belirli bir gönderi türünün (tüm gönderiler veya tüm ürünler) tüm içeriğini etkilemek istiyorsak, adı yalnızca gönderi türünün adını içeren bu şablonu kullanacağız. -
single.php: WordPress, herhangi bir içeriği (belirli bir gönderi, belirli bir ürün, vb.) işlemek için bu şablonu kullanır. -
singular.php: bu, herhangi bir türden tek içeriği işlemek için başka bir üst düzey şablondur. -
index.php: Yukarıdakilerin hiçbiri bulunamazsa, WordPress içeriğinizi oluşturmak için bu genel şablonu kullanır.
WordPress tema dizininde, emrinizde binlerce WordPress teması örneği bulunduğunu unutmayın. Birini indirmenizi ve bir öğrenme alıştırması olarak PHP dosyalarını incelemenizi ve az önce sunduğum şablonları belirlemenizi öneririm.
Bunu yaparak, WordPress şablonları hiyerarşisinde hangi şablonları kullandıklarını anlayabilir ve bu şablonların her birinin hangi içeriğe sahip olduğunu görebilirsiniz. Hiç şüphesiz, WordPress temaları hakkında bilgi edinmek istiyorsanız, bu yapılması zorunlu bir şeydir. Üstelik ücretsiz!
Normal Sayfalar
Gönderiler ve diğer gönderi türlerinde olduğu gibi, WordPress de sayfaları oluşturmak için bir şablon hiyerarşisi kullanır:
- Seçili şablon: Bir sayfayı düzenlerken sayfa özellikleri kutusundan belirli bir şablon seçerseniz, her zaman diğerlerine göre öncelik kazanır. Burada özel şablonlar oluşturmayı öğrenebilirsiniz.
-
page-{slug}.php: belirli bir sayfanın kendi şablonuna sahip olmasını istiyorsanız, o şablonu adında sayfanın bilgisini içeren bir PHP dosyasında oluşturun. -
page-{id}.php: ayrıca şablonun uygulandığı WordPress sayfa kimliğini doğrudan kullanabilirsiniz. -
page.php: Bu şablon, hiyerarşideki önceki şablonlardan biri zaten uygulanmamışsa, tüm WordPress sayfaları için geçerlidir. -
singular.php: tekil şablon, tüm sayfalar, gönderiler, ürünler vb. için varsayılan şablondur. WordPress'teki çoğu tema zaten birpage.phpşablonu içerdiğinden bu şablon nadiren uygulanacaktır. -
index.php: her zaman olduğu gibi, bu WordPress'in varsayılan yedek şablonu.
Şimdi daha önce indirdiğiniz temayı tekrar kontrol etmeye çalışın ve orada görünen diğer dosyaları biraz daha anladığınızı göreceksiniz. Elbette artık sayfa şablonları için PHP dosyalarını tanımlayabilirsiniz.
Özel Sayfalar
WordPress'te, içerik oluşturmak için belirli şablonlardan yararlanan başka özel sayfalar da vardır. Buna bir örnek, web sitesinin ana sayfasıdır. Ana sayfanın, Okuma alt menüsündeki WordPress Ayarlarında seçildiğini unutmayın. Bu sayfa için aşağıdaki şablon hiyerarşisi kullanılır:

-
front-page.php: WordPress'te ana sayfa olarak statik bir sayfa kullanırsanız, öncefront-page.phpşablonunu uygulamaya çalışacaktır. -
home.php: önceki şablon bulunamazsa, WordPress bu şablonu kullanmaya çalışır. Bu şablon, ana sayfa olarak statik bir sayfa seçmek yerine en son gönderilerinizi gösterme seçeneğini seçtiyseniz de kullanılır. -
index.php: yine, varsayılan şablon her zaman mevcuttur.
WordPress'inizin arama sonuçlarını gösteren sayfa aynı zamanda kendi şablonuna sahip olabilen özel bir sayfadır. Bunu yapmak için search.php şablonunu kullanabilirsiniz. Temanız onu tanımlamıyorsa, index.php her zamanki gibi kullanılacaktır.
Son olarak, web siteniz bir 404 hatası verdiğinde gösterilen sayfa, belirli bir WordPress şablonuyla da yapılandırılabilir. 404.php dosyasını oluşturmalısınız ve ardından bu şablon uygulanacaktır.
Arşivler için Şablonlar
Şimdiye kadar tek içerik için şablonlar gördük (arama sonuçları hariç). Ancak WordPress'te, bir sayfada birden fazla öğe oluşturabilecek arşivler de vardır. Bu durumda WordPress'in hangi şablon hiyerarşisini kullandığını görelim.
Kategoriler ve Etiketler
WordPress, kategoriler için aşağıdaki şablon hiyerarşisini kullanır:
-
category-{slug}.php: bu şablon, belirli bir kategoriye ait içeriğin (genellikle gönderiler) listesini oluşturmak için kullanılır. Özellikle, PHP dosyasının adında sümüklü böcek görünen kategoriyi oluştururken kullanılacaktır. -
category-{id}.php: sümüklü böcekler yerine kategori kimliklerini kullanmayı tercih ederseniz, bunu da yapabilirsiniz. Örneğin, 13. kategoriye bir şablon uygulamak istiyorsanız,category-13.phpadlı şablon dosyasını oluşturun. -
category.php: tüm kategoriler için varsayılan şablon. -
archive.php: bu, WordPress'teki arşivler için en genel şablondur. -
index.php: yine, temanız daha spesifik bir şablon içermiyorsa, WordPress varsayılan olarak bu dosyaya geçecektir.
Etiketler için aşağıdaki şablon hiyerarşisi kullanılır:
-
tag-{slug}.php: etikete röportaj deniyorsa, WordPress'te o etiket için belirli bir şablon tasarlamak istediğimizdetag-interview.phpşablonunu kullanabiliriz. -
tag-{id}.php: şablonu etiket kimliği aracılığıyla da tanımlayabiliriz. -
tag.php:category.phpile olduğu gibi, bu etiketler için genel şablondur. -
archive.php: yine, yukarıdakilerden hiçbiri mevcut değilse bu şablon kullanılacaktır. -
index.php: her zaman olduğu gibi, bu yedek şablondur.
Özel Posta Türleri ve Özel Taksonomiler
Özel içerik türlerimiz varsa, archive-{post_type}.php şablonunu kullanabiliriz; burada post_type , özel gönderi türünün bir parçası olur. Bu, o gönderi türü için içerik listesini oluşturacaktır.
Özel sınıflandırmalar için WordPress aşağıdaki şablon hiyerarşisini kullanır:
-
taxonomy-{taxonomy}-{term}.php: WordPress'te video oyunları adı verilen özel bir taksonominiz varsa ve bu taksonomide spor terimi için özel bir tasarıma sahip bir şablon oluşturmak istiyorsanız,taxonomy-videogames-sports.phpdosyasını oluşturmanız gerekecektir.taxonomy-videogames-sports.phpbu şablonu kullanmak için. -
taxonomy-{taxonomy}.php: tüm sınıflandırma terimleri için aynı şablonu kullanmak istiyorsanız, önceki örnekte sadecetaxonomy-videogames.phpkullanın. -
taxonomy.php: bu, tüm taksonomiler için varsayılan şablondur. -
archive.php: yukarıdaki şablonlardan hiçbiri mevcut değilse, bu geçerlidir. -
index.php: yine, bu varsayılan geri dönüş şablonudur.
Tüm bu açıklamalarla, WordPress temalarınızda şablonlar oluşturmak ve tanımlamak için ihtiyacınız olan her şeye zaten sahip olmalısınız.
Özetle
WordPress şablonlarının hiyerarşisini anlamak, temaları anlayabilmenin ve hatta kendi temanızı geliştirebilmenin anahtarıdır. Buna bir göz atmak ve WordPress'imizde kullandığınız temanın PHP kodunu değiştirmeye başladığınızda güven kazanmak için nasıl çalıştığını bilmek asla acı vermez.
Başka şablonlar da var, ancak daha az kullanılıyor. Her neyse, her zaman WordPress Codex belgelerini kontrol edebileceğinizi unutmayın. Orada burada açıklanmayan her şeyi bulacaksınız.
Bütün bunlar hakkında ne düşünüyorsun? WordPress içeriğiniz için hala şablonlar mı kullanıyorsunuz yoksa tüm tasarımları zaten bloklarla mı oluşturuyorsunuz? Yazının sonuna ulaştıysanız aşağıdan bana bir yorum bırakmayı unutmayın—WordPress şablonlarını nasıl kullandığınızı bilmek isterim!
Unsplash'ta Edvard Alexander Rlvaag tarafından öne çıkan görsel .
