Ierarhia de șabloane: confuzie între index.php, front-page.php, home.php

16 aug. 2013, 23:07:05
Vizualizări: 90.4K
Voturi: 47

Sunt foarte confuz în legătură cu index.php, home.php și front-page.php. În multe cazuri, chiar dacă aveam un index.php, l-am suprascris cu front-page.php. Dar recent am aflat despre existența home.php.

  • Care este diferența dintre home.php și index.php?
  • În ce condiții ideale ar trebui să folosesc home.php în loc de index.php?
  • În ce condiții ideale ar trebui să folosesc front-page.php?
  • Când folosesc front-page.php, ce anume face index.php pentru mine?

Am citit Ierarhia de șabloane în Codex. Vă rog să nu confundați întrebarea mea cu șabloanele de pagini, le înțeleg, alHamduLILLAH.

1
Comentarii

Am primit de la @rarst asta: https://www.rarst.net/wordpress/front-page-logic/. Poate te ajută.

Mayeenul Islam Mayeenul Islam
17 mai 2016 11:19:16
Toate răspunsurile la întrebare 6
0
45

Logica paginii de front este una dintre cele mai confuze funcționalități din WordPress și este extrem de greu de explicat și rezumat. După cum am menționat într-un comentariu acum ceva timp, am petrecut o cantitate nesfântă de timp pentru a crea ghidul meu privind logica paginii de front pentru aceasta.

Dar, deoarece acesta este un subiect popular, permiteți-mi să încerc să răspund la acele întrebări foarte specifice pe care le-ați avut.

Care este diferența dintre home.php și index.php?

home.php este un șablon pentru indexul de articole (arhiva tipului de postare nativ Post, care este un caz special în WP). WordPress va încerca să îl caute pentru indexul de articole, indiferent dacă acestea sunt afișate în rădăcina site-ului sau pe o pagină dedicată de articole.

index.php este un șablon universal. Este ultima alegere în toate ramurile ierarhiei de șabloane și va fi selectat atunci când nimic altceva nu se potrivește, atât pentru arhive, cât și pentru vizualizări individuale.

Doar indexul de articole poate folosi home.php, dar toate celelalte contexte pot și vor folosi index.php.

Care este condiția ideală pentru a folosi un home.php în loc de un index.php?

Folosiți home.php pentru a personaliza indexul de articole.

Folosiți index.php pentru a oferi cel mai generic șablon în tema dumneavoastră, potrivit pentru afișarea oricărui conținut.

Unele teme aleg să aibă index.php gol și se asigură că au șabloane mai specifice pentru toate cazurile posibile, astfel încât acesta să nu fie niciodată necesar.

Care este condiția ideală pentru a folosi un front-page.php?

front-page.php este folosit pentru indexul de articole în rădăcină sau pentru pagina frontală statică, dacă este activată.

Este un șablon cu prioritate mare, așa că dacă tema îl include, nu puteți selecta un șablon arbitrar pentru pagina frontală statică. Din acest motiv, aproape niciodată nu este inclus în temele lansate public (ceea ce este corect).

Cea mai bună utilizare pentru el este în proiectele private, deoarece este mai ușor de configurat decât un șablon de pagină.

Când folosesc un front-page.php, ce sarcini specifice îmi îndeplinește atunci un index.php?

index.php este încă un șablon universal pentru toate celelalte cazuri.

Dacă folosiți o pagină frontală statică (pentru care se va aplica front-page.php), atunci pagina de articole va încerca să folosească home.php și apoi index.php.

26 aug. 2016 19:31:21
1
31

Fișierul front-page.php este șablonul pentru pagina principală a site-ului. Acesta va fi întotdeauna utilizat pe pagina principală a site-ului tău, indiferent dacă get_option( 'show_on_front' ) este setat la page sau posts.

Fișierul șablon home.php este șablonul pentru indexul articolelor blogului. Acesta va fi întotdeauna utilizat pentru a afișa indexul articolelor blogului tău, indiferent dacă indexul articolelor este afișat pe pagina principală a site-ului sau pe o altă pagină.

În cazul în care atât front-page.php cât și home.php există, iar get_option( 'show_on_front' ) este setat la posts (adică pagina principală afișează indexul articolelor), fișierul front-page.php va avea prioritate față de fișierul home.php.

Fișierul index.php este șablonul implicit de rezervă pentru toate contextele din Ierarhia Șabloanelor. Acesta este utilizat doar dacă nu există un fișier șablon mai specific pentru contextul curent.

Ierarhia șabloanelor pentru pagina principală a site-ului este:

  • front-page.php
  • Dacă 'page' == get_option( 'show_on_front' ): ierarhia paginilor
  • Dacă 'posts' == get_option( 'show_on_front' ): ierarhia indexului articolelor blogului

Ierarhia șabloanelor pentru indexul articolelor blogului este:

  • home.php
  • index.php

Ierarhia șabloanelor pentru pagini este:

  • Șablon personalizat pentru pagină
  • page-{slug}.php
  • page-{id}.php
  • page.php
  • index.php
16 aug. 2013 23:22:34
Comentarii

Deci, dacă înțeleg corect, nu este posibil să folosești șablonul my-template-1 când pagina principală este setată să afișeze ultimele articole și să folosești my-template-2 când pagina principală este setată ca o pagină statică (fără a scrie cod)?

Johansson Johansson
30 mai 2017 21:06:18
1
19

Toate acestea provin dintr-o citire atentă a Ierarhiei de șabloane.

home.php este utilizat dacă:

  • Pagina frontală a site-ului tău este setată să afișeze o listă de articole, sau
  • Și tema are un fișier home.php

Dacă ultima condiție nu este îndeplinită - adică nu există un fișier home.php în temă - atunci se va încărca index.php.

front-page.php va fi utilizat dacă:

Dacă ultima condiție nu este îndeplinită - adică nu există un fișier front-page.php în temă - atunci se va încărca index.php.

Pe scurt

Dacă dorești să personalizezi lista ta de articole, folosește home.php.
Dacă dorești să personalizezi pagina ta frontală statică, folosește front-page.php.

16 aug. 2013 23:14:23
Comentarii

home.php va fi utilizat pentru indexul postărilor de blog, indiferent de locație. Dacă pagina principală este setată să afișeze indexul postărilor de blog, atunci home.php va fi utilizat (dacă front-page.php nu există).

Chip Bennett Chip Bennett
16 aug. 2013 23:25:24
0
12

Pe scurt:

  • index.php este un șablon de rezervă, folosit doar în cazul în care nu a fost găsit un șablon mai potrivit
  • home.php este folosit pentru blog (o listă a postărilor recente)
  • front-page.php este folosit pentru pagina de destinație (landing-page)

Șablonul universal index.php

Fișierul șablon index.php este un șablon de rezervă. Este folosit ca ultimă soluție atunci când nu este disponibil un alt șablon mai potrivit. De exemplu, dacă nu aveți un front-page.php sau un home.php, atunci va fi folosit index.php. Același lucru este valabil și pentru șabloanele lipsă precum archive.php sau single.php și așa mai departe.

Diferența dintre front-page.php și home.php

Diferența dintre șabloanele front-page.php și home.php este că front-page.php este folosit, după cum sugerează și numele, ca pagina principală a site-ului, în timp ce home.php este destinat să fie pagina de start a secțiunii Blog.

Ce șablon va fi folosit pentru pagina de destinație a site-ului meu?

Șablonul front-page.php, dacă este prezent, va fi folosit pentru pagina principală a site-ului (de ex. http://www.example.com/). Dacă nu este prezent, atunci va fi folosit home.php. Dacă ambele fișiere șablon front-page.php și home.php lipsesc, atunci va fi folosit șablonul de rezervă index.php.

Ce șablon va fi folosit pentru pagina de blog?

WordPress vă permite să aveți o pagină "Blog" (care va afișa postările recente) pe o pagina diferită decât pagina de destinație (de ex. http://www.example.com/blog/). Deci, dacă acesta este cazul pe site-ul dumneavoastră, atunci pagina Blog va folosi întotdeauna șablonul home.php. Dacă home.php nu există, atunci va fi folosit șablonul de rezervă index.php.

Cum să configurați pagina de destinație și pagina de blog?

Pentru a configura ce conținut să fie afișat pe pagina principală, accesați Administratorul WordPress, sub Unelte > Citire, unde puteți configura "Afișarea paginii principale" pentru a afișa o pagină statică sau postările recente.

În cazul în care alegeți să afișați o pagină statică pe pagina principală, atunci aveți și posibilitatea să setați care pagină să fie folosită ca locație pentru pagina Blog (care va folosi șablonul home.php):

Configurarea paginii principale și a paginii de blog în WordPress

21 aug. 2013 10:18:41
0

preluat de la Ierarhia de șabloane WordPress

Afișarea paginii de acasă

În mod implicit, WordPress configurează pagina principală a site-ului tău pentru a afișa cele mai recente articole de pe blog. Această pagină se numește indexul articolelor de blog. De asemenea, poți seta ca articolele de blog să fie afișate pe o pagină statică separată. Fișierul șablon home.php este folosit pentru a reda indexul articolelor de blog, indiferent dacă este folosit ca pagină frontală sau pe o pagină statică separată. Dacă home.php nu există, WordPress va folosi index.php.

  1. home.php
  2. index.php

Notă: Dacă există front-page.php, acesta va suprascrie șablonul home.php.

Afișarea paginii frontale

Fișierul șablon front-page.php este folosit pentru a reda pagina frontală a site-ului tău, indiferent dacă pagina frontală afișează indexul articolelor de blog (menționat mai sus) sau o pagină statică. Șablonul paginii frontale are prioritate față de șablonul indexului articolelor de blog (home.php). Dacă fișierul front-page.php nu există, WordPress va folosi fie home.php fie page.php în funcție de setările din Setări → Citire. Dacă niciunul dintre aceste fișiere nu există, va folosi fișierul index.php.

1. front-page.php – Folosit atât pentru „ultimele articole” cât și pentru „o pagină statică” așa cum este setat în secțiunea de afișare a paginii frontale din Setări → Citire.

2. home.php – Dacă WordPress nu poate găsi front-page.php și „ultimele articole” este setat în secțiunea de afișare a paginii frontale, va căuta home.php. În plus, WordPress va căuta acest fișier când pagina de articole este setată în secțiunea de afișare a paginii frontale.

3. page.php – Când „pagina frontală” este setată în secțiunea de afișare a paginii frontale.

4. index.php – Când „ultimele articole” este setat în secțiunea de afișare a paginii frontale dar home.php nu există sau când pagina frontală este setată dar page.php nu există.

După cum poți vedea, există multe reguli în ceea ce privește calea pe care o urmează WordPress. Folosirea diagramei de mai sus este cea mai bună metodă pentru a determina ce va afișa WordPress.

Diagrama ierarhiei de șabloane: Ierarhia de șabloane WordPress

7 nov. 2015 22:39:48
0

Am decis să testez care șablon este utilizat pentru fiecare dintre următoarele pagini atunci când sunt setate diferite opțiuni de afișare a paginii principale.

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

Rezultatele sunt destul de lungi, dar pot fi folosite ca referință sau ca fișă de ajutor.

Afișarea paginii principale

Sursa: Cum diferă șabloanele front-page.php și home.php în WordPress?

Notă pentru editor: Am încercat să copiez și să lipesc tabelele aici, dar este necesar formatul markdown în loc de HTML. Vă rog convertiți în markdown dacă se poate.

25 apr. 2017 04:26:27