Jerarquía de plantillas: confundido con index.php, front-page.php, home.php
-
-
Conseguí @rarst conesto: https://www.rarst.net/wordpress/front-page-logic/.Puede ayudarte.Got @rarst with this: https://www.rarst.net/wordpress/front-page-logic/. May help you.
- 1
- 2016-05-17
- Mayeenul Islam
-
6 respuestas
- votos
-
- 2016-08-26
La lógica de lapáginaprincipales una de las característicasmás confusas de WordPress yesexcepcionalmente difícil deexplicar y resumir. Como semencionóen el comentario hacetiempo,quemé una cantidad detiempoimpíapara armarmi truco de lógica de lapáginaprincipal hoja .
Pero dado queestees un hilopopular,permítameintentar responderesaspreguntasmuyespecíficas quetenía.
¿Cuáles la diferenciaentre
home.php
yindex.php
?home.php
es unaplantillaparael índice depublicaciones (archivo deltipo depublicación Postnativo,quees un casoespecialen WP). WPintentarábuscarel índice depublicaciones,ya sea que semuestrenen la raíz del sitio oen lapágina depublicaciones dedicada.index.php
es unaplantilla "catch-all". Son opcionesfinalesen todas las ramas de lajerarquía deplantillas y se seleccionarán cuandonadamásencaje,tantopara archivos comopara vistas singulares.Soloel índice depublicacionespuede usar
home.php
,pero todos otros contextospueden usar y usaránindex.php
.¿Cuáles la condiciónidealpara usar un
home.php
que unindex.php
Utiliza
home.php
parapersonalizarel índice depublicaciones.Utiliza
index.php
paraproporcionar laplantillamásgenéricaen sutema,adecuadaparamostrar cualquier cosa.Algunostemas optanportener
index.php
vacío y se aseguran detenerplantillasmásespecíficasparatodos los casosposibles,demodo quenuncatenga que usarse.¿Cuáles la condiciónidealpara utilizar un
front-page.php
?front-page.php
se usaparael índice depublicacionesen lapáginaprincipal raíz oestática,siestá habilitado.Es unaplantilla de altaprioridad,por lo que sieltema lotiene,nopuede seleccionar unaplantilla arbitrariapara lapáginaprincipalestática. Poresta razón,casinunca seincluyeen temaspublicadospúblicamente (lo cuales correcto).
Elmejor usoesen proyectosprivados,ya queesmásfácil de configurar que laplantilla depágina.
Cuandoestoy usando un
front-page.php
,¿quétareaespecíficaestá haciendo unindex.php
pormí?index.php
es todavía unaplantillaparatodos los demás casos.Si usa unapáginafrontalestática (a la que se aplicará
front-page.php
),supágina depublicacionesintentará usarhome.php
y luegoindex.php
.Front page logic is one of the most confusing features in WordPress and is exceptionally hard to explain and summarize. As mentioned in comment while back I burnt unholy amount of time to put together my front page logic cheat sheet for it.
But since this is a popular thread let me try to answer those very specific questions you had.
What's the difference between the
home.php
andindex.php
?home.php
is template for posts index (archive of native Post post type, which is a special case in WP). WP will attempt to look it up for index of posts, whether they are displayed at the root of the site or at dedicated posts page.index.php
is catch–all template. It is final choices in all branches of template hierarchy and will be picked when nothing else fits, for both archives and singular views.Only posts index can use
home.php
, but all other contexts might and will useindex.php
.What's the ideal condition to use a
home.php
than anindex.php
You use
home.php
to customize posts index.You use
index.php
to provide the most generic template in your theme, suitable for display of anything.Some themes choose to have empty
index.php
and ensure they have more specific templates for all possible cases, so it never has to be used.What's the ideal condition to use a
front-page.php
?front-page.php
is used for posts index at the root or static front page, if enabled.It is a high priority template, so if theme has it you cannot select arbitrary template for static front page. For this reason it is almost never included in publicly released themes (which is correct).
The best use for it is in private projects, since it's easier to configure than page template.
When I'm using a
front-page.php
then what specific task anindex.php
is doing for me then?index.php
is still a catch all template for all other cases.If you use static front page (to which
front-page.php
will apply) then your posts page will try to usehome.php
and thenindex.php
. -
- 2013-08-16
El archivo
front-page.php
es laplantilla de portada del sitio . Siempre se utilizaráen lapáginaprincipal de su sitio,independientemente de siget_option( 'show_on_front' )
está configurado comopage
oposts
.El archivo deplantilla
home.php
es laplantilla de índice depublicaciones deblog . Siempre se utilizaráparamostrarel índice depublicaciones de sublog,independientemente de siel índice depublicaciones delblog semuestraen lapáginaprincipal del sitio oen unapágina diferente.Enel caso de queexistan
front-page.php
yhome.hpp
,yelget_option( 'show_on_front' )
esté configurado aposts
(es decir,lapáginaprincipal del sitiomuestrael índice depublicaciones deblog),el archivofront-page.php
tendráprioridad sobrehome.php
archivo.El archivo
index.php
es la plantilla de reservapredeterminada paratodos los contextosen Jerarquía deplantillas . Solo se usa sinoexiste un archivo deplantillamásespecíficoparael contexto actual.Lajerarquía deplantillaspara la portada del sitio es:
front-page.php
- Si
'page' == get_option( 'show_on_front' )
:jerarquía depáginas - Si
'posts' == get_option( 'show_on_front' )
:jerarquía de índice depublicaciones deblog
Lajerarquía deplantillasparael índice depublicaciones deblog es:
home.php
index.php
Lajerarquía deplantillaspara páginas es:
- Plantilla depáginapersonalizada
page-{slug}.php
page-{id}.php
page.php
index.php
The
front-page.php
file is the site front page template. It will always be used on your site front page, regardless of whetherget_option( 'show_on_front' )
is set topage
orposts
.The
home.php
template file is the blog posts index template. It will always be used to display your blog posts index, regardless of whether the blog posts index is displayed on the site front page, or on a different page.In the case that both
front-page.php
andhome.hpp
exist, and theget_option( 'show_on_front' )
is set toposts
(i.e., the site front page displays the blog posts index), thefront-page.php
file will take precedence over thehome.php
file.The
index.php
file is the default fallback template for all contexts in the Template Hierarchy. It is only ever used if a more-specific template file does not exist for the current context.The template hierarchy for the site front page is:
front-page.php
- If
'page' == get_option( 'show_on_front' )
: page hierarchy - If
'posts' == get_option( 'show_on_front' )
: blog posts index hierarchy
The template hierarchy for the blog posts index is:
home.php
index.php
The template hierarchy for pages is:
- Custom page template
page-{slug}.php
page-{id}.php
page.php
index.php
-
Entonces,siestoy haciendoestobien,noesposible usar laplantilla `my-template-1` cuando lapáginaprincipalestá configuradapara las últimaspublicaciones y usar`my-template-2` cuando laportadaestá configurada como unapáginaestática(sin codificar)?So, if i'm getting this right, it's not possible to use `my-template-1` template when the front page is set to latest posts and use `my-template-2` when the front is set to an static page (without coding) ?
- 0
- 2017-05-30
- Jack Johansson
-
- 2013-08-16
Todoestoproviene de una lectura completa de la Jerarquía deplantillas .
home.php
se usa si:- Lapáginaprincipal de su sitioestá configuradaparamostrar una lista depublicaciones,o
- Seestablece unaportadaestática ,y
- Un visitante va a lapágina que definiste comotu "lista depublicaciones" (p.ej.,
http://example.com/blog/
)
- Yeltematiene un archivo
home.php
Sino se cumple la última condición,es decir,no hay un archivo
home.php
en eltema,entonces se cargaráindex.php
.front-page.php
se utilizará si:- Seestablece unaportadaestática ,y
- Un visitante accede a lapágina que definió como su "página deinicioestática" (es decir,
http://example.com/
) y - Eltematiene un archivo
front-page.php
Sino se cumple la última condición,es decir,no hay un archivo
front-page.php
en eltema,entonces se cargaráindex.php
.En resumen
Si deseapersonalizar su lista depublicaciones,use
home.php
.
Si deseapersonalizar supágina deinicioestática,usefront-page.php
.All this comes from a thorough reading of the Template Hierarchy.
home.php
is used if:- Your site's front page is set to display a list of posts, or
- A static front page is set, and
- A visitor goes to the page that you've defined as your "list of posts" (eg,
http://example.com/blog/
)
- And the theme has a
home.php
file
If the last condition isn't met -- ie, there is no
home.php
file in the theme -- thenindex.php
will be loaded.front-page.php
will be used if:- A static front page is set, and
- A visitor goes to the page that you've defined as your "static home page" (ie,
http://example.com/
), and - The theme has a
front-page.php
file
If the last condition isn't met -- ie, there is no
front-page.php
file in the theme -- thenindex.php
will be loaded.In summary
If you want to customize your list of posts, use
home.php
.
If you want to customize your static home page, usefront-page.php
.-
`home.php` se utilizaráparael índice depublicaciones delblog,independientemente de la ubicación.Si lapáginaprincipalestá configuradaparamostrarel índice depublicaciones delblog,entonces se usará `home.php` (si`front-page.php`noexiste).`home.php` will be used for the blog posts index, regardless of location. If the front page is set to display the blog posts index, then `home.php` will be used (if `front-page.php` does not exist).
- 2
- 2013-08-16
- Chip Bennett
-
- 2013-08-21
En resumen:
-
index.php
es solo unaplantilla alternativa,en caso de queno seencuentre unaplantilla adecuada -
home.php
se usaparaelblog (una lista depublicaciones recientes) -
front-page.php
se utilizapara lapágina de destino
Laplantilla
index.php
universalEl archivo deplantilla
index.php
es unaplantilla alternativa. Se utiliza como último recurso cuandono hay disponible otraplantillamás adecuada. Porejemplo,sinotiene unfront-page.php
ni unhome.php
,se utilizaráindex.php
. Estotambiénes válidoparaarchive.php
osingle.php
y así sucesivamente.Con respecto a
front-page.php
VShome.php
Ahora,la diferenciaentre lasplantillas
front-page.php
yhome.php
es que se usafront-page.php
,como sunombre sugiere,como lapáginaprincipalprincipal del sitio,mientras quehome.php
está destinado a serel hogar de la sección Blog .¿Quéplantilla se utilizarápara lapágina de destino demi sitio?
Laplantilla
front-page.php
,siestápresente,se utilizarápara lapáginaprincipal del sitio (porejemplo,http://www.example.com/
) . Sinoestápresente,en su lugar se usaráhome.php
. Sifaltan los archivos deplantillafront-page.php
yhome.php
,se utilizará laplantilla de respaldoindex.php
.¿Quéplantilla se utilizarápara lapágina demi blog?
WordPress lepermitetener unapágina de "Blog" (queenumerará laspublicaciones recientes)en una página diferente que lapágina de destino (porejemplo,
http://www.example.com/blog/
). Entonces,siesteesel casoen su sitio,lapágina del Blog siempre usará laplantillahome.php
. Sihome.php
noexiste,se utilizará laplantilla de respaldoindex.php
.¿Cómo configurar lapágina de destino y lapágina delblog?
Para configurar qué contenidomostraren supáginaprincipal,vaya al Administrador de WordPress ,en Herramientas> Lectura ,allípuede configurar la " Páginaprincipalmuestra "paramostrar unapáginaestática o sus últimaspublicaciones.
Enel caso de queelijamostrar unapáginaestáticaen lapáginaprincipal,tambiéntiene laposibilidad deestablecer quépágina usar comomarcador deposiciónpara lapágina del Blog (que usaráel
home.php
plantilla):In short:
index.php
is a fallback template only, in case no appropriate template was foundhome.php
is used for the blog (a listing of recent posts)front-page.php
is used for the landing-page
The universal
index.php
templateThe
index.php
template file is a fallback template. It is used as a last resort when no other more appropriate template is available. For example, if you don't have afront-page.php
nor ahome.php
thenindex.php
will be used. This is also true for missingarchive.php
orsingle.php
and so on.Regarding
front-page.php
VShome.php
Now the difference between
front-page.php
andhome.php
templates is that thefront-page.php
is used, as its name suggests, as the main front-page of the site, whilehome.php
is intended to be the home of the Blog section.What template will be used for my site's landing-page?
The
front-page.php
template, if present, will be used for the site's main front page (e.g.http://www.example.com/
). If not present, thenhome.php
will be used instead. If both thefront-page.php
andhome.php
template files are missing then theindex.php
fallback template will be used.What template will be used for my blog page?
WordPress allows you to have a "Blog" page (which will list recent posts) on a different page than the landing-page (e.g.
http://www.example.com/blog/
). So if this is the case on your site, then the Blog page will always use thehome.php
template. Ifhome.php
doesn't exist then theindex.php
fallback template will be used.How to configure the landing-page and blog page?
To configure what content to show on your front page, go to the WordPress Admin, under Tools > Reading, there you can configure the "Front page displays" to show a static page, or your latest posts.
In the case you choose to display a static page on the front page, then you also have the possibility to set which page to use as a placeholder for the Blog page (which will use the
home.php
template): -
- 2015-11-07
tomado de jerarquía deplantillas de Wordpress
Visualización de lapágina deinicio
Deformapredeterminada,WordPress configura lapágina deinicio de su sitioparamostrar su últimaspublicaciones deblog. Estapágina se llama índice depublicaciones deblog. Ustedpuede también configure laspublicaciones de sublogpara que semuestrenen unapáginaestática separada. los El archivo deplantilla home.php se usapara representarel índice depublicaciones delblog,ya sea se utiliza comoportada oen unapáginaestática separada. Si home.phpnoexiste,WordPress usaráindex.php.
- home.php
- index.php
Nota: Siexistefront-page.php,anulará laplantilla home.php.
Visualización de lapáginaprincipal
El archivo deplantillafront-page.php se utilizapara representarelfrente de su sitio página,si lapáginaprincipalmuestrael índice depublicaciones delblog (mencionado arriba) o unapáginaestática. Laplantilla de laportadatiene prioridad sobre laplantilla de índice depublicaciones deblog (home.php). Siel archivofront-page.php noexiste,WordPress usará home.php opage.php archivos dependiendo de la configuraciónen Configuración → Lectura. Sininguno de esos archivosexisten,usaráel archivoindex.php.
1.front-page.php : se utilizatantopara "tus últimaspublicaciones" comopara "unapáginaestática" como seestableceen la sección de visualización de lapáginaprincipal de Configuración → Lectura.
2. home.php : si WordPressnopuedeencontrarfront-page.php y "su último publicaciones "seestableceen la sección de visualización de lapáginaprincipal,buscará home.php. Además,WordPressbuscaráeste archivo cuandoel Lapágina depublicaciones seestableceen la sección de visualización de lapáginaprincipal.
3.page.php : cuando "Páginaprincipal" seestableceen la sección de visualización de lapáginaprincipal.
4.index.php - Cuando seestablece "sus últimaspublicaciones"en la sección depantallas de lapáginaprincipal,pero home.phpnoexiste o cuando lapáginaprincipalestá configuradaperopage.php sí noexiste.
Comopuede ver,haymuchas reglas sobre qué ruta WordPresstoma. Usarel cuadro anteriores lamejormanera de determinar quémostrará WordPress.
taken from Wordpress template hierarchy
Home Page display
By default, WordPress sets your site’s home page to display your latest blog posts. This page is called the blog posts index. You can also set your blog posts to display on a separate static page. The template file home.php is used to render the blog posts index, whether it is being used as the front page or on separate static page. If home.php does not exist, WordPress will use index.php.
- home.php
- index.php
Note: If front-page.php exists, it will override the home.php template.
Front Page display
The front-page.php template file is used to render your site’s front page, whether the front page displays the blog posts index (mentioned above) or a static page. The front page template takes precedence over the blog posts index (home.php) template. If the front-page.php file does not exist, WordPress will either use the home.php or page.php files depending on the setup in Settings → Reading. If neither of those files exist, it will use the index.php file.
1. front-page.php – Used for both “your latest posts” or “a static page” as set in the front page displays section of Settings → Reading.
2. home.php – If WordPress cannot find front-page.php and “your latest posts” is set in the front page displays section, it will look for home.php. Additionally, WordPress will look for this file when the posts page is set in the front page displays section.
3. page.php – When “front page” is set in the front page displays section.
4. index.php – When “your latest posts” is set in the front page displays section but home.php does not exist or when front page is set but page.php does not exist.
As you can see, there are a lot of rules to what path WordPress takes. Using the chart above is the best way to determine what WordPress will display.
-
- 2017-04-25
Decidíprobar quéplantilla se usapara cada una de las siguientespáginas cuando las distintas opciones de visualización de lapáginaprincipalestán configuradas.
- example.net
- example.net/home/
- example.net/blog/
Los resultados sonbastante largos,pero sepueden utilizar como referencia o como hoja de referencia.
Fuente: ¿En qué se diferencian lasplantillasfront-page.php y home.phpen WordPress?
Notaparaeleditor: intenté copiar ypegar lastablas aquí,pero se requiere unformato de rebajasen lugar de HTML.Conviértalo a rebajas sipuede.
I decided to test which template is used for each of the following pages when the various Front page displays options are set.
- example.net
- example.net/home/
- example.net/blog/
The results are quite long, but can be used as a reference or cheat-sheet.
Source: How do the front-page.php and home.php templates differ in WordPress?
Note to editor: I tried to copy and paste the tables here but markdown format is required instead of HTML. Please convert to markdown if you can.
Estoy realmente confundido con
index.php
,home.php
yfront-page.php
.Enmuchos casos,aunquetenía unindex.php
,lo sobrescribía confront-page.php
.Pero recientemente,me enteré dehome.php
.home.php
yindex.php
?home.php
que unindex.php
?front-page.php
?front-page.php
,¿quétareaespecíficaestá haciendo unindex.php
pormí?He leído la Jerarquía deplantillas en Codex.Porfavor,nomezclemi pregunta con Plantillas depágina,lasentiendo,alHamduLILLAH.