Estou realmente confuso com index.php
, home.php
e front-page.php
. Em muitos casos, mesmo tendo um index.php
, eu o sobrescrito front-page.php
. Mas, recentemente, fiquei ciente home.php
.
- Qual é a diferença entre the
home.php
eindex.php
? - Qual é a condição ideal para usar um
home.php
que umindex.php
? - Qual é a condição ideal para usar um
front-page.php
? - Quando estou usando um
front-page.php
, que tarefa específica umindex.php
está fazendo por mim?
Eu li a Hierarquia de modelos no Codex. Por favor, não misture minha pergunta com Modelos de Página, eu os entendo, alHamduLILLAH.
template-hierarchy
Mayeenul Islam
fonte
fonte
Respostas:
A lógica da primeira página é um dos recursos mais confusos do WordPress e é excepcionalmente difícil de explicar e resumir. Como mencionado no comentário, quando voltei, eu queimei uma quantidade profana de tempo para montar minha folha de dicas de lógica da primeira página .
Mas como esse é um tópico popular, deixe-me tentar responder a perguntas muito específicas que você tinha.
home.php
é um modelo para o índice de postagens (arquivo morto do tipo de postagem nativa, que é um caso especial no WP). O WP tentará procurar no índice de postagens, sejam elas exibidas na raiz do site ou na página de postagens dedicada.index.php
é um modelo abrangente. São as escolhas finais em todos os ramos da hierarquia de modelos e serão escolhidas quando nada mais couber, tanto para arquivos como para visualizações únicas.Somente o índice de postagens pode usar
home.php
, mas todos os outros contextos podem e irão usarindex.php
.Você usa
home.php
para personalizar o índice de postagens.Você usa
index.php
para fornecer o modelo mais genérico no seu tema, adequado para exibição de qualquer coisa.Alguns temas optam por ficar vazios
index.php
e garantem que eles tenham modelos mais específicos para todos os casos possíveis, para que ele nunca precise ser usado.front-page.php
é usado para o índice de postagens na página inicial raiz ou estática, se ativado.É um modelo de alta prioridade, portanto, se o tema o incluir, você não poderá selecionar um modelo arbitrário para a primeira página estática. Por esse motivo, quase nunca é incluído em temas divulgados publicamente (o que é correto).
O melhor uso para isso é em projetos privados, pois é mais fácil de configurar do que o modelo de página.
index.php
ainda é um modelo abrangente para todos os outros casos.Se você usar a primeira página estática (à qual
front-page.php
se aplicará), sua página de postagens tentará usarhome.php
e entãoindex.php
.fonte
O
front-page.php
arquivo é o modelo da primeira página do site . Ele sempre será usado na página inicial do site, independentemente deget_option( 'show_on_front' )
estar definido comopage
ouposts
.O
home.php
arquivo de modelo é o modelo de índice de postagens do blog . Ele sempre será usado para exibir o índice de postagens do seu blog, independentemente de o índice de postagens do blog ser exibido na primeira página do site ou em uma página diferente.No caso em que ambos
front-page.php
ehome.hpp
existem, e oget_option( 'show_on_front' )
está definido paraposts
(ou seja, a página do site da frente exibe o índice posts), ofront-page.php
arquivo terá precedência sobre ohome.php
arquivo.O
index.php
arquivo é o modelo de fallback padrão para todos os contextos na Hierarquia de Modelos . Ele só é usado se um arquivo de modelo mais específico não existir para o contexto atual.A hierarquia do modelo para a primeira página do site é:
front-page.php
'page' == get_option( 'show_on_front' )
: hierarquia de páginas'posts' == get_option( 'show_on_front' )
: o blog postar hierarquia de índicesA hierarquia do modelo para o índice de postagens do blog é:
home.php
index.php
A hierarquia de modelos para as páginas é:
page-{slug}.php
page-{id}.php
page.php
index.php
fonte
my-template-1
modelo quando a primeira página estiver definida como as últimas postagens e usarmy-template-2
quando a frente estiver definida como uma página estática (sem codificação)?Tudo isso vem de uma leitura completa da Hierarquia de modelos .
home.php
é usado se:http://example.com/blog/
)home.php
arquivoSe a última condição não for atendida - ou seja, não houver
home.php
arquivo no tema -,index.php
será carregado.front-page.php
será usado se:http://example.com/
) efront-page.php
arquivoSe a última condição não for atendida - ou seja, não houver
front-page.php
arquivo no tema -,index.php
será carregado.Em suma
Se você deseja personalizar sua lista de postagens, use
home.php
.Se você deseja personalizar sua página inicial estática, use
front-page.php
.fonte
home.php
será usado para o índice de postagens do blog, independentemente da localização. Se a primeira página estiver configurada para exibir o índice de postagens do blog, elahome.php
será usada (sefront-page.php
não existir).Em resumo:
index.php
é apenas um modelo de fallback, caso nenhum modelo apropriado tenha sido encontradohome.php
é usado para o blog (uma lista de postagens recentes)front-page.php
é usado para a página de destinoO
index.php
modelo universalO
index.php
arquivo de modelo é um modelo de fallback. É usado como último recurso quando nenhum outro modelo mais apropriado está disponível. Por exemplo, se você não tiver umfront-page.php
nem um,home.php
entãoindex.php
será usado. Isso também se aplica à faltaarchive.php
ousingle.php
assim por diante.Em relação ao
front-page.php
VShome.php
Agora, a diferença entre
front-page.php
ehome.php
modelos é que elefront-page.php
é usado, como o nome sugere, como a primeira página principal do site, enquantohome.php
se destina a ser a página inicial da seção Blog .Qual modelo será usado para a página de destino do meu site?
O
front-page.php
modelo, se presente, será usado para a primeira página principal do site (por exemplohttp://www.example.com/
). Se não estiver presente,home.php
será usado. Se os arquivos de modelofront-page.php
ehome.php
estiverem ausentes, oindex.php
modelo de fallback será usado.Qual modelo será usado para a minha página de blog?
O WordPress permite que você tenha uma página "Blog" (que listará postagens recentes) em uma página diferente da página de destino (por exemplo
http://www.example.com/blog/
). Portanto, se esse for o caso no seu site, a página Blog sempre usará ohome.php
modelo. Sehome.php
não existir, oindex.php
modelo de fallback será usado.Como configurar a página de destino e a página do blog?
Para configurar o conteúdo a ser exibido em sua página inicial, vá para o Admin do WordPress , em Ferramentas> Leitura , lá você pode configurar os " Visores da página inicial " para mostrar uma página estática ou suas últimas postagens.
No caso de você optar por exibir uma página estática na primeira página, também poderá definir qual página usar como espaço reservado para a página do Blog (que usará o
home.php
modelo):fonte
extraído da hierarquia de modelos do Wordpress
Gráfico de hierarquia de modelos:
fonte
Decidi testar qual modelo é usado para cada uma das páginas a seguir quando as várias opções de exibição da página inicial estão definidas.
Os resultados são bastante longos, mas podem ser usados como referência ou como cábula.
Fonte: Como os modelos front-page.php e home.php diferem no WordPress?
Nota para o editor: tentei copiar e colar as tabelas aqui, mas o formato de remarcação é necessário em vez de HTML. Converta para remarcação, se puder.
fonte