Jerarquía de plantilla: confundida con index.php, front-page.php, home.php

36

Estoy realmente confundido con index.php, home.phpy front-page.php. En muchos casos, aunque tenía un index.php, lo sobrescribo con front-page.php. Pero recientemente, me di cuenta home.php.

  • ¿Cuál es la diferencia entre home.phpy index.php?
  • ¿Cuál es la condición ideal para usar un home.phpque un index.php?
  • ¿Cuál es la condición ideal para usar un front-page.php?
  • Cuando estoy usando una front-page.php, ¿qué tarea específica index.phpestá haciendo una para mí?

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

Mayeenul Islam
fuente
1
Conseguí @rarst con esto: rarst.net/wordpress/front-page-logic . Puede ayudarte
Mayeenul Islam

Respuestas:

34

La lógica de la portada es una de las características más confusas de WordPress y es excepcionalmente difícil de explicar y resumir. Como se mencionó en el comentario de antes, quemé una cantidad de tiempo impía para armar mi hoja de trucos de lógica de portada .

Pero dado que este es un hilo popular, déjame intentar responder a esas preguntas muy específicas que tenías.

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

home.phpes una plantilla para el índice de publicaciones (archivo del tipo de publicación nativa, que es un caso especial en WP). WP intentará buscar el índice de publicaciones, ya sea que se muestren en la raíz del sitio o en una página dedicada de publicaciones.

index.phpes catch-all template. Son las elecciones finales en todas las ramas de la jerarquía de plantillas y se elegirán cuando nada más se ajuste, tanto para archivos como para vistas singulares.

Solo se puede usar el índice de publicaciones home.php, pero todos los demás contextos pueden y lo harán index.php.

¿Cuál es la condición ideal para usar un home.phpque unindex.php

Se utiliza home.phppara personalizar el índice de publicaciones.

Se utiliza index.phppara proporcionar la plantilla más genérica en su tema, adecuada para mostrar cualquier cosa.

Algunos temas eligen tener vacíos index.phpy asegurarse de que tienen plantillas más específicas para todos los casos posibles, por lo que nunca tiene que usarse.

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

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

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

Su mejor uso es en proyectos privados, ya que es más fácil de configurar que la plantilla de página.

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

index.phpsigue siendo una plantilla catch all para todos los demás casos.

Si usa la página frontal estática (a la que front-page.phpse aplicará), su página de publicaciones intentará usar home.phpy luego index.php.

Rarst
fuente
28

El front-page.phparchivo es la plantilla de la página principal del sitio . Siempre se usará en la página principal de su sitio, independientemente de si get_option( 'show_on_front' )está configurado en pageo posts.

El home.phparchivo de plantilla es la plantilla de índice de publicaciones de blog . Siempre se usará para mostrar el índice de publicaciones de su blog, independientemente de si el índice de publicaciones de blog se muestra en la página principal del sitio o en una página diferente.

En el caso de que tanto front-page.phpy home.hpporganizaciones existan, y el get_option( 'show_on_front' )se establece en posts(es decir, se muestra la página principal del sitio del índice de entradas de blog), el front-page.phparchivo tendrán prioridad sobre el home.phparchivo.

El index.phparchivo es la plantilla de reserva predeterminada para todos los contextos en la Jerarquía de plantillas . Solo se usa si no existe un archivo de plantilla más específico para el contexto actual.

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

  • front-page.php
  • If 'page' == get_option( 'show_on_front' ): jerarquía de páginas
  • If 'posts' == get_option( 'show_on_front' ): jerarquía de índice de publicaciones de blog

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

  • home.php
  • index.php

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

  • Plantilla de página personalizada
  • page-{slug}.php
  • page-{id}.php
  • page.php
  • index.php
Chip Bennett
fuente
Entonces, si estoy haciendo esto bien, ¿no es posible usar la my-template-1plantilla cuando la página principal está configurada para las últimas publicaciones y usarla my-template-2cuando la página principal está configurada en una página estática (sin codificación)?
Jack Johansson
18

Todo esto proviene de una lectura exhaustiva de la Jerarquía de plantillas .

home.php se usa si:

  • La página principal de su sitio está configurada para mostrar una lista de publicaciones, o
  • Y el tema tiene un home.phparchivo

Si no se cumple la última condición, es decir, no hay ningún home.phparchivo en el tema, index.phpse cargará.

front-page.php se usará si:

  • Se establece una portada estática y
  • Un visitante va a la página que ha definido como su "página de inicio estática" (es decir, http://example.com/) y
  • El tema tiene un front-page.phparchivo

Si no se cumple la última condición, es decir, no hay ningún front-page.phparchivo en el tema, index.phpse cargará.

En resumen

Si quieres personalizar tu lista de publicaciones, úsala home.php.
Si desea personalizar su página de inicio estática, úsela front-page.php.

Pat J
fuente
2
home.phpse utilizará para el índice de publicaciones del blog, independientemente de su ubicación. Si la página principal está configurada para mostrar el índice de publicaciones de blog, home.phpse utilizará (si front-page.phpno existe).
Chip Bennett
10

En breve:

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

La index.phpplantilla universal

El index.phparchivo de plantilla es una plantilla alternativa. Se utiliza como último recurso cuando no hay disponible otra plantilla más apropiada. Por ejemplo, si usted no tiene una front-page.php, ni una home.phpa continuación index.phpse utilizarán. Esto también es cierto para los que faltan archive.phpo single.phpy así sucesivamente.

En cuanto a front-page.phpVShome.php

Ahora, la diferencia entre front-page.phpy las home.phpplantillas es que front-page.phpse usa, como su nombre lo indica, como la página principal del sitio, mientras que home.phpestá destinado a ser el hogar de la sección Blog .

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

La front-page.phpplantilla, si está presente, se utilizará para la portada principal del sitio (p http://www.example.com/. Ej .). Si no está presente, home.phpse utilizará en su lugar. Si ambos front-page.phpy home.phpplantilla archivos faltan, entonces el index.phpse utilizará la plantilla de reserva.

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

WordPress le permite tener una página de "Blog" (que enumerará las publicaciones recientes) en una página diferente a la página de destino (por ejemplo http://www.example.com/blog/). Entonces, si este es el caso en su sitio, entonces la página del Blog siempre usará la home.phpplantilla. Si home.phpno existe index.php, se utilizará la plantilla alternativa.

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

Para configurar qué contenido mostrar en su página principal, vaya al Administrador de WordPress , en Herramientas> Lectura , allí puede configurar las " pantallas de la página principal " para mostrar una página estática o sus últimas publicaciones.

En el caso de que elija mostrar una página estática en la página principal, también tiene la posibilidad de establecer qué página usar como marcador de posición para la página del Blog (que usará la home.phpplantilla):

ingrese la descripción de la imagen aquí

preguntado feb 12 '12
fuente
3

tomado de la jerarquía de plantillas de Wordpress

Visualización de la página de inicio

Por defecto, WordPress establece la página de inicio de su sitio para mostrar sus últimas publicaciones de blog. Esta página se llama índice de publicaciones de blog. También puede configurar las publicaciones de su blog para que se muestren en una página estática separada. El archivo de plantilla home.php se usa para representar el índice de publicaciones del blog, ya sea que se use como página principal 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 front-page.php existe, anulará la plantilla home.php.

Visualización de la página frontal

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

1. front-page.php : se utiliza tanto para "sus últimas publicaciones" como para "una página estática" tal como se establece en la sección de pantallas de portada de Configuración → Lectura.

2. home.php : si WordPress no puede encontrar front-page.php y "sus últimas publicaciones" se configuran en la sección de pantallas de la portada, buscará home.php. Además, WordPress buscará este archivo cuando la página de publicaciones se configure en la sección de pantallas de la página principal.

3. page.php : cuando se establece “portada” en la sección de visualizaciones de la portada.

4. index.php : cuando se configuran "sus últimas publicaciones" en la sección de visualización de la página principal, pero home.php no existe o cuando la página principal está configurada pero page.php no existe.

Como puede ver, hay muchas reglas sobre el camino que toma WordPress. Usar la tabla anterior es la mejor manera de determinar qué mostrará WordPress.

Gráfico de jerarquía de plantilla: Jerarquía de plantillas de Wordpress

samix73
fuente
2

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

  • ejemplo.net
  • ejemplo.net/home/
  • ejemplo.net/blog/

Los resultados son bastante largos, pero pueden usarse como referencia o como hoja de referencia.

Muestra la portada

Fuente: ¿Cómo difieren las plantillas front-page.php y home.php en WordPress?

Nota para el editor: Intenté copiar y pegar las tablas aquí, pero se requiere un formato de marcado en lugar de HTML. Convierte a Markdown si puedes.

henrywright
fuente