Jerarquía de plantillas: confusión con index.php, front-page.php, home.php

16 ago 2013, 23:07:05
Vistas: 90.4K
Votos: 47

Estoy realmente confundido con index.php, home.php y front-page.php. En muchos casos, aunque tenía un index.php, lo sobrescribía con front-page.php. Pero recientemente, me enteré sobre home.php.

  • ¿Cuál es la diferencia entre home.php y index.php?
  • ¿Cuál es la condición ideal para usar home.php en lugar de index.php?
  • ¿Cuál es la condición ideal para usar front-page.php?
  • Cuando uso front-page.php, ¿qué tarea específica realiza index.php entonces?

He leído la Jerarquía de Plantillas en el Codex. Por favor no mezcles mi pregunta con Plantillas de Página, las entiendo, alHamduLILLAH.

1
Comentarios

Conseguí esto de @rarst: https://www.rarst.net/wordpress/front-page-logic/. Podría ayudarte.

Mayeenul Islam Mayeenul Islam
17 may 2016 11:19:16
Todas las respuestas a la pregunta 6
0
45

La lógica de la página de inicio es una de las características más confusas en WordPress y es excepcionalmente difícil de explicar y resumir. Como mencioné en un comentario anterior, invertí una cantidad considerable de tiempo para crear mi hoja de referencia sobre la lógica de la página de inicio para esto.

Pero dado que este es un hilo popular, permíteme intentar responder esas preguntas muy específicas que tenías.

¿Cuál es la diferencia entre home.php y index.php?

home.php es la plantilla para el índice de publicaciones (archivo del tipo de contenido nativo Post, que es un caso especial en WP). WordPress intentará buscarlo para el índice de publicaciones, ya sea que se muestren en la raíz del sitio o en una página dedicada.

index.php es la plantilla comodín. Es la última opción en todas las ramas de la jerarquía de plantillas y se elegirá cuando nada más encaje, tanto para archivos como para vistas individuales.

Solo el índice de publicaciones puede usar home.php, pero todos los demás contextos podrían y usarán index.php.

¿Cuál es la condición ideal para usar home.php en lugar de index.php?

Usas home.php para personalizar el índice de publicaciones.

Usas index.php para proporcionar la plantilla más genérica en tu tema, adecuada para mostrar cualquier cosa.

Algunos temas eligen tener un index.php vacío y asegurarse de tener plantillas más específicas para todos los casos posibles, para que nunca tenga que usarse.

¿Cuál es la condición ideal para usar front-page.php?

front-page.php se usa para el índice de publicaciones en la raíz o la página de inicio estática, si está habilitada.

Es una plantilla de alta prioridad, por lo que si el tema la incluye, no puedes seleccionar una plantilla arbitraria para la página de inicio estática. Por esta razón, casi nunca se incluye en temas lanzados públicamente (lo cual es correcto).

El mejor uso para ella es en proyectos privados, ya que es más fácil de configurar que una plantilla de página.

Cuando estoy usando front-page.php, ¿qué tarea específica está haciendo index.php para mí entonces?

index.php sigue siendo una plantilla comodín para todos los demás casos.

Si usas una página de inicio estática (a la que se aplicará front-page.php), entonces tu página de publicaciones intentará usar home.php y luego index.php.

26 ago 2016 19:31:21
1
31

El archivo front-page.php es la plantilla de la página de inicio del sitio. Siempre se utilizará en la página de inicio de tu sitio, independientemente de si get_option( 'show_on_front' ) está configurado como page o posts.

El archivo de plantilla home.php es la plantilla del índice de entradas del blog. Siempre se utilizará para mostrar el índice de entradas del blog, ya sea que este índice se muestre en la página de inicio del sitio o en una página diferente.

En el caso de que existan tanto front-page.php como home.php, y get_option( 'show_on_front' ) esté configurado como posts (es decir, la página de inicio muestra el índice de entradas del blog), el archivo front-page.php tendrá prioridad sobre el archivo home.php.

El archivo index.php es la plantilla de respaldo predeterminada para todos los contextos en la Jerarquía de Plantillas. Solo se utiliza si no existe un archivo de plantilla más específico para el contexto actual.

La jerarquía de plantillas para la página de inicio del sitio es:

  • front-page.php
  • Si 'page' == get_option( 'show_on_front' ): jerarquía de página
  • Si 'posts' == get_option( 'show_on_front' ): jerarquía del índice de entradas del blog

La jerarquía de plantillas para el índice de entradas del blog es:

  • home.php
  • index.php

La jerarquía de plantillas para páginas es:

  • Plantilla de página personalizada
  • page-{slug}.php
  • page-{id}.php
  • page.php
  • index.php
16 ago 2013 23:22:34
Comentarios

Entonces, si lo estoy entendiendo correctamente, ¿no es posible usar la plantilla my-template-1 cuando la página de inicio está configurada para mostrar las últimas entradas y usar my-template-2 cuando la página de inicio está configurada como una página estática (sin programación)?

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

Todo esto proviene de una lectura detallada de la Jerarquía de Plantillas.

home.php se utiliza si:

  • La página frontal de tu sitio está configurada para mostrar una lista de publicaciones, o
  • Y el tema tiene un archivo home.php

Si no se cumple la última condición (es decir, no hay un archivo home.php en el tema), entonces se cargará index.php.

front-page.php se utilizará si:

Si no se cumple la última condición (es decir, no hay un archivo front-page.php en el tema), entonces se cargará index.php.

En resumen

Si deseas personalizar tu lista de publicaciones, usa home.php.
Si deseas personalizar tu página de inicio estática, usa front-page.php.

16 ago 2013 23:14:23
Comentarios

home.php se utilizará para el índice de publicaciones del blog, independientemente de su ubicación. Si la página de inicio está configurada para mostrar el índice de publicaciones del blog, entonces se usará home.php (si front-page.php no existe).

Chip Bennett Chip Bennett
16 ago 2013 23:25:24
0
12

En resumen:

  • index.php es solo una plantilla de respaldo, en caso de que no se encuentre una plantilla adecuada
  • home.php se utiliza para el blog (un listado de publicaciones recientes)
  • front-page.php se utiliza para la página de inicio

La plantilla universal index.php

El archivo de plantilla index.php es una plantilla de respaldo. Se utiliza como último recurso cuando no hay disponible una plantilla más apropiada. Por ejemplo, si no tienes un front-page.php ni un home.php, entonces se usará index.php. Esto también es cierto para cuando falten archive.php o single.php y así sucesivamente.

Sobre front-page.php VS home.php

Ahora, la diferencia entre las plantillas front-page.php y home.php es que front-page.php se utiliza, como su nombre lo indica, como la página principal del sitio, mientras que home.php está destinado a ser el inicio de la sección de Blog.

¿Qué plantilla se usará para la página de inicio de mi sitio?

La plantilla front-page.php, si está presente, se utilizará para la página principal del sitio (ej. http://www.example.com/). Si no está presente, entonces se usará home.php en su lugar. Si faltan tanto la plantilla front-page.php como home.php, entonces se utilizará la plantilla de respaldo index.php.

¿Qué plantilla se usará para mi página de blog?

WordPress te permite tener una página "Blog" (que listará publicaciones recientes) en una página diferente a la de inicio (ej. http://www.example.com/blog/). Entonces, si este es el caso en tu sitio, la página del Blog siempre usará la plantilla home.php. Si home.php no existe, entonces se usará la plantilla de respaldo index.php.

¿Cómo configurar la página de inicio y la página de blog?

Para configurar qué contenido mostrar en tu página de inicio, ve al Administrador de WordPress, en Ajustes > Lectura, allí puedes configurar "Tu portada muestra" para mostrar una página estática o tus publicaciones más recientes.

En el caso de que elijas mostrar una página estática en la portada, también tienes la posibilidad de establecer qué página usar como marcador de posición para la página del Blog (que usará la plantilla home.php):

Configuración de página de inicio y blog en WordPress

21 ago 2013 10:18:41
0

tomado de Jerarquía de plantillas de WordPress

Visualización de la página de inicio

Por defecto, WordPress configura la página de inicio de tu sitio para mostrar tus publicaciones de blog más recientes. Esta página se llama índice de publicaciones del blog. También puedes configurar tus publicaciones para que se muestren en una página estática separada. El archivo de plantilla home.php se utiliza para renderizar el índice de publicaciones del blog, ya sea que se esté utilizando como página frontal o en una página estática separada. Si home.php no existe, WordPress usará index.php.

  1. home.php
  2. index.php

Nota: Si existe front-page.php, anulará la plantilla home.php.

Visualización de la página frontal

El archivo de plantilla front-page.php se utiliza para renderizar la página frontal de tu sitio, ya sea que la página frontal muestre el índice de publicaciones del blog (mencionado anteriormente) o una página estática. La plantilla de página frontal tiene prioridad sobre la plantilla del índice de publicaciones del blog (home.php). Si el archivo front-page.php no existe, WordPress usará home.php o page.php dependiendo de la configuración en Ajustes → Lectura. Si ninguno de esos archivos existe, usará el archivo index.php.

1. front-page.php – Se utiliza tanto para "tus últimas publicaciones" como para "una página estática" según lo configurado en la sección de visualización de la página frontal de Ajustes → Lectura.

2. home.php – Si WordPress no puede encontrar front-page.php y "tus últimas publicaciones" está configurado en la sección de visualización de la página frontal, buscará home.php. Adicionalmente, WordPress buscará este archivo cuando la página de publicaciones esté configurada en la sección de visualización de la página frontal.

3. page.php – Cuando "página frontal" está configurado en la sección de visualización de la página frontal.

4. index.php – Cuando "tus últimas publicaciones" está configurado en la sección de visualización de la página frontal pero home.php no existe o cuando la página frontal está configurada pero page.php no existe.

Como puedes ver, hay muchas reglas sobre la ruta que sigue WordPress. Usar el diagrama anterior es la mejor manera de determinar qué mostrará WordPress.

Diagrama de jerarquía de plantillas: Jerarquía de plantillas de WordPress

7 nov 2015 22:39:48
0

Decidí probar qué plantilla se utiliza para cada una de las siguientes páginas cuando se configuran las distintas opciones de Visualización de la página de inicio.

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

Los resultados son bastante extensos, pero pueden usarse como referencia o "hoja de trucos".

Visualización de la página de inicio

Fuente: ¿En qué se diferencian las plantillas front-page.php y home.php en WordPress?

Nota para el editor: Intenté copiar y pegar las tablas aquí, pero se requiere formato markdown en lugar de HTML. Por favor, conviértelo a markdown si es posible.

25 abr 2017 04:26:27