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.phpyindex.php?
- ¿Cuál es la condición ideal para usar un home.phpque 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.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.
                    
                        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.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ánindex.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.front-page.phpse 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.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á usarhome.phpy luegoindex.php.fuente
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 siget_option( 'show_on_front' )está configurado enpageoposts.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.phpyhome.hpporganizaciones 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.phparchivo tendrán prioridad sobre elhome.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'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.phpindex.phpLa jerarquía de plantillas para las páginas es:
page-{slug}.phppage-{id}.phppage.phpindex.phpfuente
my-template-1plantilla cuando la página principal está configurada para las últimas publicaciones y usarlamy-template-2cuando 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.phpse usa si:http://example.com/blog/)home.phparchivoSi no se cumple la última condición, es decir, no hay ningún
home.phparchivo en el tema,index.phpse cargará.front-page.phpse usará si:http://example.com/) yfront-page.phparchivoSi 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.fuente
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á (sifront-page.phpno existe).En breve:
index.phpes solo una plantilla alternativa, en caso de que no se encuentre una plantilla adecuadahome.phpse usa para el blog (una lista de publicaciones recientes)front-page.phpse usa para la página de inicioLa
index.phpplantilla universalEl
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 unafront-page.php, ni unahome.phpa continuaciónindex.phpse utilizarán. Esto también es cierto para los que faltanarchive.phposingle.phpy así sucesivamente.En cuanto a
front-page.phpVShome.phpAhora, la diferencia entre
front-page.phpy lashome.phpplantillas es quefront-page.phpse usa, como su nombre lo indica, como la página principal del sitio, mientras quehome.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 (phttp://www.example.com/. Ej .). Si no está presente,home.phpse utilizará en su lugar. Si ambosfront-page.phpyhome.phpplantilla archivos faltan, entonces elindex.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á lahome.phpplantilla. Sihome.phpno 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.phpplantilla):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