Şablon Hiyerarşisi: index.php, front-page.php, home.php ile karışık


36

Gerçekten ile karıştırılmamalıdır ediyorum index.php, home.phpve front-page.php. Bir çok durumda bir index.phptanesine sahip olmama rağmen, üzerine yazarım front-page.php. Ama son zamanlarda, farkında oldum home.php.

  • Arasındaki fark nedir home.phpve index.php?
  • Bir kullanmak home.phpdaha ideal koşul nedir index.php?
  • Bir kullanmak için ideal koşul nedir front-page.php?
  • Ne zaman kullanıyorum, front-page.phpo zaman benim için ne gibi bir görev index.phpyapıyor?

Codex'te Şablon Hiyerarşisini okudum . Lütfen sorumu Sayfa Şablonları ile karıştırmayın, anlıyorum, alHamduLILLAH.


1
Bu konuda @rarst var: rarst.net/wordpress/front-page-logic . Yardımcı olabilirmiyim.
Mayeenul Islam,

Yanıtlar:


34

Ön sayfa mantığı, WordPress'teki en kafa karıştırıcı özelliklerden biridir ve açıklanması ve özetlenmesi son derece zordur. Yorum sırasında belirtildiği gibi, geri döndüğümde, benim ön sayfa mantık hile sayfamı bir araya getirmek için kutsal bir zaman harcamamıştım .

Ancak bu popüler bir konu olduğundan, sahip olduğunuz çok özel soruları cevaplamaya çalışmama izin verin.

Arasındaki fark nedir home.phpve index.php?

home.phpgönderiler endeksi için şablondur (WP'de özel bir durum olan yerel Post post tipinin arşivi). WP, sitenin kökünde mi yoksa özel yazılar sayfasında mı görüntülendiğini, indeksleri aramaya çalışacaktır.

index.phpyakalamak-tüm şablon. Bu, şablon hiyerarşisinin tüm dallarında son seçimlerdir ve hem arşivler hem de tekil görüşler için başka hiçbir şey uymadığında seçilecektir.

Yalnızca postalar dizini kullanabilir home.php, ancak diğer tüm içerikler kullanabilir ve kullanır index.php.

Bir kullanmak için ideal bir durum nedir home.phpbir dahaindex.php

home.phpMesaj dizini özelleştirmek için kullanın .

Sen kullanmak index.phpşey gösterimi için uygun Temanızın en jenerik şablonu, sağlamak.

Bazı temalar boş kalmayı index.phpve olası tüm durumlar için daha belirli şablonlara sahip olmalarını sağlamayı tercih eder , bu nedenle asla kullanılmaması gerekir.

Bir kullanmak için ideal koşul nedir front-page.php?

front-page.php etkinse, kök veya statik ön sayfadaki gönderiler dizini için kullanılır.

Bu yüksek öncelikli bir şablondur, dolayısıyla teması varsa statik ön sayfa için rastgele bir şablon seçemezsiniz. Bu nedenle neredeyse hiç bir zaman kamuya açık temalara dahil edilmemiştir (bu doğru).

Bunun için en iyi kullanım, sayfa şablonundan daha kolay yapılandırıldığından özel projelerdedir.

Ne zaman kullanıyorum, front-page.phpo zaman benim için ne gibi bir görev index.phpyapıyor?

index.phpolduğu hala bir catch tüm diğer durumlar için bütün şablonu.

Eğer (ki statik ön sayfasını kullanıyorsanız front-page.phpuygulanacaktır) ardından yayınlar sayfa kullanmaya çalışır home.phpve daha sonra index.php.


28

front-page.phpDosyasıdır sitesi ön sayfa şablonu. Veya get_option( 'show_on_front' )olarak ayarlanıp ayarlanmadığına bakılmaksızın, her zaman sitenizin ön sayfasında kullanılacaktır .pageposts

home.phpŞablon dosyasıdır blog gönderileri endeksi şablonu. Blog yazısı dizininin sitenin ön sayfasında mı yoksa farklı bir sayfada mı görüntülendiğinden bağımsız olarak her zaman blog yazısı dizininizi görüntülemek için kullanılır.

Her iki Bu durumda front-page.phpve home.hppmevcut ve get_option( 'show_on_front' )ayarlanırsa posts(yani, site ön sayfa görüntüler blog yayınları endeksi), front-page.phpdosya göre öncelikli olacaktır home.phpdosyası.

index.phpDosyasıdır varsayılan yedek şablon tüm bağlamlar için Şablon Hiyerarşi . Sadece mevcut içerik için daha spesifik bir şablon dosyası mevcut değilse kullanılır.

Sitenin ön sayfasının şablon hiyerarşisi :

  • front-page.php
  • Eğer 'page' == get_option( 'show_on_front' ): sayfa hiyerarşisi
  • Eğer 'posts' == get_option( 'show_on_front' ): blog indeks hiyerarşisini yayınladı

Blog yazısı dizini için şablon hiyerarşisi :

  • home.php
  • index.php

Sayfalar için şablon hiyerarşisi :

  • Özel sayfa şablonu
  • page-{slug}.php
  • page-{id}.php
  • page.php
  • index.php

Öyleyse, bu hakkı elde edersem my-template-1, ön sayfa en son yayınlara ayarlandığında şablon kullanmak my-template-2ve ön statik bir sayfaya ayarlanmışken kullanmak (kodlama olmadan) mümkün değil mi?
Jack Johansson

18

Bütün bunlar, Şablon Hiyerarşisi'nin kapsamlı bir okumasından gelir .

home.php eğer kullanılırsa:

  • Sitenizin ön sayfası yayınların listesini görüntülemek üzere ayarlanmış veya
  • Ve temanın bir home.phpdosyası var

Son koşul yerine getirilmezse - yani, home.phptemada dosya yok - index.phpyüklenir.

front-page.php eğer kullanılacaksa:

  • Statik bir ön sayfa ayarlandı ve
  • Bir ziyaretçi "statik giriş sayfanız" (yani http://example.com/) olarak tanımladığınız sayfaya gider.
  • Temanın bir front-page.phpdosyası var

Son koşul yerine getirilmezse - yani, front-page.phptemada dosya yok - index.phpyüklenir.

Özetle

Gönderi listenizi özelleştirmek istiyorsanız, kullanın home.php.
Statik ana sayfanızı özelleştirmek istiyorsanız, kullanın front-page.php.


2
home.phpkonumdan bağımsız olarak blog gönderileri endeksi için kullanılacaktır. Ön sayfa blog gönderileri dizinini home.phpgösterecek şekilde ayarlanmışsa, o zaman ( front-page.phpyoksa) kullanılacaktır.
Chip Bennett,

10

Kısacası:

  • index.php uygun bir şablon bulunamaması durumunda yalnızca bir yedek şablonudur
  • home.php blog için kullanılır (son gönderilerin listesi)
  • front-page.php açılış sayfası için kullanılır

Evrensel index.phpşablon

index.phpŞablon dosyası bir geri dönüş şablondur. Başka uygun şablon olmadığı zaman son çare olarak kullanılır. Mesela eğer bir front-page.phpnormunuz yoksa home.phpo index.phpzaman kullanılacaktır. Bu aynı zamanda eksik için de geçerlidir archive.phpveya single.phpvb.

front-page.phpVS ile ilgili olarakhome.php

Şimdi front-page.phpve home.phpşablonlar arasındaki fark front-page.php, adından da anlaşılacağı gibi, sitenin ana ön sayfası olarak kullanıldığında home.php, Blog bölümünün ana sayfa olması amaçlanıyor .

Sitemin açılış sayfası için hangi şablon kullanılacak?

front-page.phpŞablon varsa, sitenin ana ön sayfasında (örn kullanılacaktır http://www.example.com/). Eğer yoksa, home.phpbunun yerine kullanılacaktır. Hem front-page.phpve hem de home.phpşablon dosyaları eksikse, index.phpgeri dönüş şablonu kullanılacaktır.

Blog sayfam için hangi şablon kullanılacak?

WordPress , açılış sayfasından (örn. ) Farklı bir sayfada bir "Blog" sayfası (en son yayınları listeleyen) sahip olmanızı sağlar http://www.example.com/blog/. Bu nedenle, sitenizdeki durum buysa, Blog sayfası her zaman home.phpşablonu kullanır . Eğer home.phpyoksa, index.phpgeri dönüş şablonu kullanılacaktır.

Açılış sayfası ve blog sayfasını nasıl yapılandırabilirim?

Ön sayfanızda hangi içeriğin gösterileceğini yapılandırmak için, WordPress Yöneticisi'ne gidin , Araçlar> Okuma altında , statik bir sayfa veya en son yazılarınızı göstermek için " Ön sayfa ekranları " nı yapılandırabilirsiniz .

Ön sayfada statik bir sayfa görüntülemeyi seçmeniz durumunda, hangi sayfanın Blog sayfası için yer tutucu olarak kullanılacağını da belirleme olanağınız vardır (bu, home.phpşablonu kullanır ):

görüntü tanımını buraya girin


3

Wordpress şablon hiyerarşisinden alınmış

Ana Sayfa ekranı

Varsayılan olarak, WordPress en son blog yayınlarınızı görüntülemek için sitenizin ana sayfasını ayarlar. Bu sayfaya blog yazısı endeksi denir. Blog yazılarınızı ayrıca ayrı bir statik sayfada görüntülenecek şekilde ayarlayabilirsiniz. Home.php şablon dosyası, ön sayfa olarak mı yoksa ayrı bir statik sayfada mı kullanıldığına bakılmaksızın blog gönderileri endeksini oluşturmak için kullanılır. Home.php yoksa, WordPress index.php dosyasını kullanır.

  1. home.php
  2. index.php

Not: Ön sayfa.php varsa, home.php şablonunu geçersiz kılar.

Ön sayfa ekran

Ön sayfa.php şablon dosyası, sitenin ön sayfasını, ön sayfanın blog gönderileri endeksini (yukarıda belirtilen) ya da statik bir sayfayı göstermesini sağlamak için kullanılır. Ön sayfa şablonu blog gönderileri endeksi (home.php) şablonundan önceliklidir. Ön sayfa.php dosyası yoksa, WordPress Ayarlar → Okuma bölümündeki kuruma bağlı olarak home.php veya page.php dosyalarını kullanır. Bu dosyalardan hiçbiri yoksa, index.php dosyasını kullanır.

1. front-page.php - Ön sayfada gösterildiği gibi hem “son yazılarınız” hem de “statik sayfa” için kullanılır. Ayarlar → Okuma bölümü görüntülenir.

2. home.php - WordPress ön page.php dosyasını bulamazsa ve ön sayfa görüntüler bölümünde “son gönderileriniz” ayarlanırsa, home.php dosyasını arayacaktır. Ek olarak, WordPress bu sayfa için gönderiler sayfası ön sayfada göründüğü zaman ayarlandığında arayacaktır.

3. page.php - Ön sayfa “ön sayfa” olarak ayarlandığında ön sayfa görüntülenir.

4. index.php - “En son yazılarınız” ön sayfada ayarlandığında bölümü gösterir, ancak home.php mevcut değil veya ön sayfa ayarlandığında ancak page.php mevcut değil.

Gördüğünüz gibi, WordPress'in aldığı yol için birçok kural var. Yukarıdaki grafiğin kullanılması, WordPress'in ne göstereceğini belirlemenin en iyi yoludur.

Şablon hiyerarşi çizelgesi: Wordpress şablon hiyerarşisi


2

Çeşitli Ön sayfa görüntüleme seçenekleri ayarlandığında, aşağıdaki sayfaların her biri için hangi şablonun kullanıldığını test etmeye karar verdim.

  • example.net
  • example.net/home/
  • example.net/blog/

Sonuçlar oldukça uzun, ancak referans veya kopya kağıdı olarak kullanılabilir.

Ön sayfa görüntüler

Kaynak: front-page.php ve home.php şablonları WordPress'te nasıl farklılık gösterir?

Editöre not: Buradaki tabloları kopyalayıp yapıştırmaya çalıştım ancak HTML yerine markdown formatı gerekiyor. Lütfen yapabiliyorsanız markdown'a dönüştürün.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.