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.php
y index.php
?
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án index.php
.
¿Cuál es la condición ideal para usar un home.php
que unindex.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.
¿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.php
está haciendo una para mí?
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á usar home.php
y luego index.php
.