Estou muito confuso com index.php
, home.php
e front-page.php
. Em muitos casos, embora eu tivesse um index.php
, Eu o substituo por front-page.php
. Mas recentemente, fiquei sabendo sobre home.php
.
- O que “é a diferença entre
home.php
eindex.php
? - Qual é a condição ideal para usar um
home.php
do queindex.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 então?
Eu li a Hierarquia do modelo no Codex. Por favor, não misture minha pergunta com modelos de página, eu entendo “em, alHamduLILLAH.
Comentários
- Foi @rarst com isto: rarst.net/wordpress/front-page-logic . Pode ajudá-lo.
Resposta
A lógica da página inicial é um dos recursos mais confusos do WordPress e é excepcionalmente difícil de explicar e resumir. Como mencionado em um comentário antes, eu gastei uma quantidade profana de tempo para reunir minha folha de dicas de lógica da página inicial para isso.
Mas desde isso é um tópico popular, deixe-me tentar responder às suas perguntas muito específicas.
Qual é a diferença entre
home.php
eindex.php
?
home.php
é modelo para índice de postagens (arquivo do tipo de postagem nativo, que é um caso especial no WP). O WP tentará procurá-lo para obter o índice de postagens, sejam elas exibidas na raiz do site ou na página de postagens dedicada. / p>
index.php
é o modelo pega-tudo. São as escolhas finais em todos os ramos da hierarquia de modelos e serão escolhidos quando nada mais se encaixar, para arquivos e visualizações singulares.
Apenas o índice de postagens pode usar home.php
, mas todos os outros contextos podem e irão usar index.php
.
Qual é a condição ideal para usar um
home.php
do que umindex.php
Use home.php
para personalizar o índice de postagens.
Você usa index.php
para fornecer o modelo mais genérico em seu tema, adequado para exibição de qualquer coisa.
Alguns temas optam por ter index.php
e garanta que eles tenham modelos mais específicos para todos os casos possíveis, para que nunca precise ser usado.
O que “é a condição ideal para usar um
front-page.php
?
front-page.php
é usado para o índice de postagens na página raiz ou página inicial estática, se habilitado.
É um modelo de alta prioridade, portanto, se o tema o tiver, você não poderá selecionar um modelo arbitrário para página inicial estática. Por esse motivo, quase nunca é incluído em temas lançados publicamente (o que é correto).
O melhor uso para ele é em projetos privados, uma vez que é mais fácil de configurar do que o modelo de página.
Quando estou usando um
front-page.php
, qual tarefa específica umindex.php
está fazendo por mim então?
index.php
é ainda um modelo pega-tudo para todos os outros casos.
Se você usar a página inicial estática (à qual front-page.php
se aplicará), sua página de postagens tentará usar home.php
e, em seguida, index.php
.
Resposta
O front-page.php
o arquivo é o modelo da página inicial do site . Ele sempre será usado na página inicial do seu site, independentemente de get_option( "show_on_front" )
estar definido como page
ou posts
.
O home.php
arquivo de modelo é o índice de postagens do blog modelo. Ele sempre será usado para exibir o índice de postagens do seu blog, independentemente de o índice de postagens do blog ser exibido na página inicial do site ou em uma página diferente.
No caso de front-page.php
e home.hpp
existem, e get_option( "show_on_front" )
está definido como posts
(ou seja, a página inicial do site exibe o índice de postagens do blog), o arquivo front-page.php
terá precedência sobre o arquivo home.php
.
O index.php
arquivo é o modelo de fallback padrão para todos os contextos na Hierarquia do modelo . Só é usado se um arquivo de modelo mais específico não existir para o contexto atual.
A hierarquia de modelos para a página inicial do site é:
-
front-page.php
- Se
"page" == get_option( "show_on_front" )
: hierarquia de página - If
"posts" == get_option( "show_on_front" )
: hierarquia de índice de postagens de blog
A hierarquia de modelo para índice de postagens de blog é:
-
home.php
-
index.php
A hierarquia de modelos para páginas é:
- Modelo de página personalizada
-
page-{slug}.php
-
page-{id}.php
-
page.php
-
index.php
Comentários
Resposta
Tudo isso vem de uma leitura completa do Hierarquia de modelo .
home.php
é usado se:
- Seu site” s a página inicial está configurada para exibir uma lista de postagens ou
- Uma página inicial estática é configurada e
- A visitante vai para a página que você “definiu como sua” lista de postagens “(por exemplo,
http://example.com/blog/
)
- E o o tema tem um
home.php
arquivo
Se a última condição não for atendida – ou seja, não há home.php
arquivo no tema – então index.php
será carregado.
front-page.php
será usado se :
- Uma frente estática p idade é definida e
- um visitante vai para a página que você “definiu como sua” página inicial estática “(isto é,
http://example.com/
) , e - O tema tem um
front-page.php
arquivo
Se a última condição não for atendida – ou seja, lá não há front-page.php
arquivo no tema – então index.php
será carregado.
Em resumo
Se quiser personalizar sua lista de postagens, use home.php
.
Se quiser personalizar sua página inicial estática, use front-page.php
.
Comentários
-
home.php
serão usados para o índice de postagens do blog, independentemente de localização. Se a página inicial estiver configurada para exibir o índice de postagens do blog,home.php
será usado (sefront-page.php
não existir).
Resposta
Resumindo:
-
index.php
é apenas um modelo substituto, caso nenhum modelo apropriado tenha sido encontrado -
home.php
é usado para o blog (uma lista de postagens recentes) -
front-page.php
é usado para a página de destino
O modelo index.php
universal
O index.php
arquivo de modelo é um modelo substituto. É usado como último recurso quando nenhum outro modelo mais apropriado está disponível. Por exemplo, se você não tiver front-page.php
nem home.php
então index.php
ser usado. Isso também é verdadeiro para archive.php
ou single.php
e assim por diante.
Em relação a front-page.php
VS home.php
Agora, a diferença entre front-page.php
e home.php
modelos é que o front-page.php
é usado, como seu nome sugere, como a página inicial principal do site, enquanto home.php
tem como objetivo ser o lar da seção Blog .
Qual modelo será usado para a página de destino do meu site?
O modelo front-page.php
, se presente, será usado para a página inicial principal do site (por exemplo, http://www.example.com/
). Se não estiver presente, então home.php
será usado. Se ambos front-page.php
e arquivos de modelo estão faltando, então o index.php
modelo substituto será usado.
Qual modelo será usado para minha página de blog?
O WordPress permite que você tenha uma página de “Blog” (que lista as 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 em seu site, a página do Blog sempre usará o modelo home.php
. Se home.php
não existir, o index.php
modelo substituto será usado.
Como configurar o destino- página e página do blog?
Para configurar o conteúdo a ser mostrado na página inicial, vá para o WordPress Admin , em Ferramentas> Leitura , você pode configurar as “ Telas de página inicial ” para mostre uma página estática ou seus posts mais recentes.
No caso de você optar por exibir uma página estática na página inicial, você também tem a possibilidade de definir qual página usar como espaço reservado para o Blog página (que usará o modelo home.php
):
Resposta
retirada da hierarquia de modelos do WordPress
Exibição da página inicial
Por padrão, o WordPress define a página inicial do seu site para exibir as últimas postagens do blog. Esta página é chamada de índice de postagens do blog. Você também pode definir suas postagens de blog para serem exibidas em uma página estática separada. O arquivo de modelo home.php é usado para renderizar o índice de postagens do blog, quer esteja sendo usado como página inicial ou em uma página estática separada. Se home.php não existir, o WordPress usará index.php.
- home.php
- index.php
Nota: Se front-page.php existir, ele irá sobrescrever o template home.php.
Exibição da primeira página
O arquivo de modelo front-page.php é usado para renderizar a página inicial do seu site, quer a página inicial exiba o índice de postagens do blog (mencionado acima) ou uma página estática. O modelo de página inicial tem precedência sobre o modelo de índice de postagens de blog (home.php). Se o arquivo front-page.php não existir, o WordPress usará os arquivos home.php ou page.php dependendo da configuração em Configurações → Leitura. Se nenhum desses arquivos existir, ele usará o arquivo index.php.
1. front-page.php – Usado para “suas últimas postagens” ou “uma página estática”, conforme definido na seção de exibição da página inicial de Configurações → Leitura.
2. home.php – Se o WordPress não conseguir localizar a página inicial.php e “suas últimas postagens” estiver definido na seção de exibições da página inicial, ele procurará por home.php. Além disso, o WordPress procurará por esse arquivo quando a página de postagens for configurada na seção de exibição da página inicial.
3. page.php – Quando “página inicial” é definida na seção de exibições da página inicial.
4. index.php – Quando “suas últimas postagens” está definido na seção de exibição da página inicial, mas home.php não existe ou quando a página inicial é definida, mas page.php não existe .
Como você pode ver, existem várias regras para definir o caminho que o WordPress toma. Usar o gráfico acima é a melhor maneira de determinar o que o WordPress exibirá.
Resposta
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 são definidas.
- example.net
- example.net/home/
- example.net/blog/
Os resultados são bastante longos, mas podem ser usados como referência ou folha de dicas.
Fonte: Como fazer Os modelos front-page.php e home.php diferem no WordPress?
Nota ao editor: Tentei copiar e colar as tabelas aqui, mas o formato markdown é necessário em vez de HTML. Converta para redução, se puder.
my-template-1
quando a página inicial está definida para as postagens mais recentes e usarmy-template-2
quando a página inicial é definida como uma página estática ( sem codificação)?