Estoy realmente confundido con index.php
, home.php
y 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.php
yindex.php
? - ¿Cuál es la condición ideal para usar un
home.php
que unindex.php
? - ¿Cuál es la condición ideal para usar un
front-page.php
? - Cuando estoy usando una
front-page.php
, ¿qué tarea específicaindex.php
está 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.
template-hierarchy
Mayeenul Islam
fuente
fuente
Respuestas:
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.
home.php
es 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.php
es 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ánindex.php
.Se utiliza
home.php
para personalizar el índice de publicaciones.Se utiliza
index.php
para proporcionar la plantilla más genérica en su tema, adecuada para mostrar cualquier cosa.Algunos temas eligen tener vacíos
index.php
y asegurarse de que tienen plantillas más específicas para todos los casos posibles, por lo que nunca tiene que usarse.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.
index.php
sigue siendo una plantilla catch all para todos los demás casos.Si usa la página frontal estática (a la que
front-page.php
se aplicará), su página de publicaciones intentará usarhome.php
y luegoindex.php
.fuente
El
front-page.php
archivo es la plantilla de la página principal del sitio . Siempre se usará en la página principal de su sitio, independientemente de siget_option( 'show_on_front' )
está configurado enpage
oposts
.El
home.php
archivo 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.php
yhome.hpp
organizaciones existan, y elget_option( 'show_on_front' )
se establece enposts
(es decir, se muestra la página principal del sitio del índice de entradas de blog), elfront-page.php
archivo tendrán prioridad sobre elhome.php
archivo.El
index.php
archivo 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
'page' == get_option( 'show_on_front' )
: jerarquía de páginas'posts' == get_option( 'show_on_front' )
: jerarquía de índice de publicaciones de blogLa 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:
page-{slug}.php
page-{id}.php
page.php
index.php
fuente
my-template-1
plantilla cuando la página principal está configurada para las últimas publicaciones y usarlamy-template-2
cuando la página principal está configurada en una página estática (sin codificación)?Todo esto proviene de una lectura exhaustiva de la Jerarquía de plantillas .
home.php
se usa si:http://example.com/blog/
)home.php
archivoSi no se cumple la última condición, es decir, no hay ningún
home.php
archivo en el tema,index.php
se cargará.front-page.php
se usará si:http://example.com/
) yfront-page.php
archivoSi no se cumple la última condición, es decir, no hay ningún
front-page.php
archivo en el tema,index.php
se 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
.fuente
home.php
se 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.php
se utilizará (sifront-page.php
no existe).En breve:
index.php
es solo una plantilla alternativa, en caso de que no se encuentre una plantilla adecuadahome.php
se usa para el blog (una lista de publicaciones recientes)front-page.php
se usa para la página de inicioLa
index.php
plantilla universalEl
index.php
archivo 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 unafront-page.php
, ni unahome.php
a continuaciónindex.php
se utilizarán. Esto también es cierto para los que faltanarchive.php
osingle.php
y así sucesivamente.En cuanto a
front-page.php
VShome.php
Ahora, la diferencia entre
front-page.php
y lashome.php
plantillas es quefront-page.php
se usa, como su nombre lo indica, como la página principal del sitio, mientras quehome.php
está 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.php
plantilla, si está presente, se utilizará para la portada principal del sitio (phttp://www.example.com/
. Ej .). Si no está presente,home.php
se utilizará en su lugar. Si ambosfront-page.php
yhome.php
plantilla archivos faltan, entonces elindex.php
se 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á lahome.php
plantilla. Sihome.php
no existeindex.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.php
plantilla):fuente
tomado de la jerarquía de plantillas de Wordpress
Gráfico de jerarquía de plantilla:
fuente
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.
Los resultados son bastante largos, pero pueden usarse como referencia o como hoja de referencia.
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.
fuente