Hierarquia de templates: confused with index.php, front-page.php, home.php

27

Estou muito confuso com index.php , home.php e front-page.php . Em muitos casos, mesmo que eu tenha um index.php , eu o substituo por front-page.php . Mas recentemente, fiquei sabendo sobre home.php .

  • Qual é a diferença entre o home.php e o index.php ?
  • Qual é a condição ideal para usar um home.php do que um index.php ?
  • Qual é a condição ideal para usar um front-page.php ?
  • Quando estou usando um front-page.php , que tarefa específica um index.php está fazendo para mim?

Li a Hierarquia de modelos no Codex. Por favor, não misture minha pergunta com Modelos de Página, eu os entendo, alHamduLILLAH.

    
por Mayeenul Islam 16.08.2013 / 22:07
fonte

6 respostas

22

A lógica de primeira página é um dos recursos mais confusos do WordPress e é excepcionalmente difícil de explicar e resumir. Como mencionei no comentário enquanto voltei, eu queimei uma quantidade de tempo enorme para juntar minha folha de dicas da lógica da página inicial por isso.

Mas como esse é um tópico popular, deixe-me tentar responder a essas perguntas bem específicas que você teve.

  

Qual é a diferença entre o home.php e o index.php ?

home.php é um modelo para o índice de publicações (arquivo do tipo nativo Post post, que é um caso especial no WP). O WP tentará procurar pelo índice de posts, sejam eles exibidos na raiz do site ou na página de posts dedicados.

index.php é um modelo catch-all. São escolhas finais em todas as ramificações da hierarquia de modelos e serão escolhidas quando nada mais couber, tanto para arquivos como para vistas singulares.

Somente o índice de postagens pode usar home.php , mas todos outros contextos podem usar index.php .

  

Qual é a condição ideal para usar um home.php do que um index.php

Você usa 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 vazio index.php e garantir que eles tenham modelos mais específicos para todos os casos possíveis, por isso nunca precisa ser usado.

  

Qual é a condição ideal para usar um front-page.php ?

front-page.php é usado para o índice de postagens na raiz ou na página principal estática, se ativado.

É um modelo de alta prioridade, portanto, se o tema tiver, você não poderá selecionar um modelo arbitrário para a primeira página estática. Por essa razão, quase nunca é incluído em temas lançados publicamente (o que é correto).

O melhor uso para isso é em projetos privados, já que é mais fácil de configurar do que o modelo de página.

  

Quando estou usando um front-page.php , que tarefa específica um index.php está fazendo para mim?

index.php é ainda um modelo catch all para todos os outros casos.

Se você usar a primeira página estática (à qual front-page.php será aplicada), sua página de postagens tentará usar home.php e, em seguida, index.php .

    
por Rarst 26.08.2016 / 18:31
fonte
21

O arquivo front-page.php é o modelo da página principal do site . Ele sempre será usado na primeira página do seu site, independentemente de get_option( 'show_on_front' ) estar definido como page ou posts .

O arquivo de modelo home.php é o modelo índice de postagens do blog . Ele sempre será usado para exibir o índice de postagens de 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 front-page.php e home.hpp existam e get_option( 'show_on_front' ) esteja definido como posts (ou seja, a página principal do site exibe o índice de postagens do blog), o arquivo front-page.php terá precedência sobre o arquivo home.php .

O arquivo index.php é o modelo de fallback padrão para todos os contextos na Hierarquia de modelos . Só é usado se um arquivo de modelo mais específico não existir para o contexto atual.

A hierarquia de modelos da página principal do site é:

  • front-page.php
  • Se 'page' == get_option( 'show_on_front' ) : hierarquia de páginas
  • Se 'posts' == get_option( 'show_on_front' ) : hierarquia de índices de postagens de blog

A hierarquia de modelos do índice de postagens do 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
por Chip Bennett 16.08.2013 / 22:22
fonte
16

Tudo isso vem de uma leitura completa da Hierarquia de modelos .

home.php é usado se:

  • A página inicial do seu site está configurada para exibir uma lista de postagens ou
  • E o tema tem um home.php file

Se a última condição não for atendida - ou seja, não há arquivo home.php no tema -, então index.php será carregado.

front-page.php será usado se:

  • Uma página principal estática e
  • Um visitante acessa a página que você definiu como sua "home page estática" (ou seja, http://example.com/ ) e
  • O tema tem um front-page.php file

Se a última condição não for atendida - ou seja, não há arquivo front-page.php no tema -, então index.php será carregado.

Em resumo

Se você quiser personalizar sua lista de postagens, use home.php .
Se você quiser personalizar sua página inicial estática, use front-page.php .

    
por Pat J 16.08.2013 / 22:14
fonte
10

Resumindo:

  • index.php é um modelo de fallback apenas, no caso de nenhum modelo apropriado ser encontrado
  • home.php é usado para o blog (uma listagem de postagens recentes)
  • front-page.php é usado para a página de destino

O modelo universal index.php

O arquivo de modelo index.php é um modelo de fallback. É usado como último recurso quando nenhum outro modelo mais apropriado está disponível. Por exemplo, se você não tiver um front-page.php nem um home.php , então index.php será usado. Isso também é verdade para a falta de archive.php ou single.php e assim por diante.

Em relação a front-page.php VS home.php

Agora, a diferença entre os modelos front-page.php e home.php é que front-page.php é usado, como o próprio nome sugere, como a página principal do site, enquanto home.php se destina a ser o lar de a seção Blog .

Qual modelo será usado na página de destino do meu site?

O modelo front-page.php , se presente, será usado para a página principal principal do site (por exemplo, http://www.example.com/ ). Se não estiver presente, home.php será usado no lugar. Se os arquivos de modelo front-page.php e home.php estiverem ausentes, o modelo de retorno index.php será usado.

Qual modelo será usado na minha página do blog?

O WordPress permite que você tenha uma página "Blog" (que listará postagens recentes) em uma página diferente que a página de destino (por exemplo, http://www.example.com/blog/ ). Portanto, se esse for o caso do seu site, a página Blog sempre usará o modelo home.php . Se home.php não existir, o modelo de retorno index.php será usado.

Como configurar a página de destino e a página do blog?

Para configurar o conteúdo a ser exibido na sua página inicial, vá para o Administrador do WordPress , em Ferramentas > Lendo , você pode configurar o " Exibição da primeira página " para mostrar uma página estática ou suas postagens mais recentes.

Caso você opte por exibir uma página estática na primeira página, também terá a possibilidade de definir qual página usar como espaço reservado para a página do Blog (que usará o home.php template):

    
por asked Feb 12 '12 21.08.2013 / 09:18
fonte
3

retirado 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 sua   últimas postagens do blog. Esta página é chamada de índice de postagens do blog. Você pode   também defina suas postagens de blog para exibir em uma página estática separada. o   o arquivo de modelo home.php é usado para renderizar o índice de postagens do blog, seja   está sendo usado como primeira página ou em uma página estática separada. E se   home.php não existe, o WordPress usará index.php.

     
  1. home.php
  2.   
  3. index.php
  4.   
    

Nota: Se o front-page.php existir, ele substituirá o modelo home.php.

  
     

Exibição da primeira página

     

O arquivo de modelo front-page.php é usado para renderizar a frente do seu site   página, se a página inicial exibe o índice de posts do blog (mencionado   acima) ou uma página estática. O modelo de primeira página tem precedência sobre   o modelo de índice de posts do blog (home.php). Se o arquivo front-page.php   não existe, o WordPress usará o arquivo home.php ou page.php   arquivos dependendo da configuração em Configurações → Leitura. Se nenhum dos   esses arquivos existem, ele usará o arquivo index.php.

     

1. front-page.php - Usado para os dois "posts mais recentes" ou "uma página estática"   conforme definido na primeira página exibe a seção Configurações → Leitura.

     

2. home.php - Se o WordPress não conseguir encontrar o front-page.php e “seu último   posts ”é definido na seção de displays da primeira página, ele irá procurar   home.php. Além disso, o WordPress irá procurar por este arquivo quando o   página de mensagens é definida na seção de exibições da primeira página.

     

3. page.php - quando   “Front page” é definida na seção de displays da primeira página.

     

4. index.php -   Quando “seus posts mais recentes” estão definidos na primeira página, exibe a seção, mas   home.php não existe ou quando a primeira página está definida mas o page.php não   não existe.

     

Como você pode ver, há muitas regras para qual caminho   WordPress leva. Usar o gráfico acima é a melhor maneira de determinar   o que o WordPress exibirá.

Gráfico de hierarquia de modelos:

    
por samix73 07.11.2015 / 21:39
fonte
2

Eu decidi testar qual modelo é usado para cada uma das seguintes páginas quando as várias opções de exibição da página principal estã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 fraude.

Fonte: Como os templates front-page.php e home.php diferem no WordPress?

Nota ao editor: tentei copiar e colar as tabelas aqui, mas é necessário o formato de marcação em vez do HTML. Por favor converta para markdown se puder.

    
por henrywright 25.04.2017 / 03:26
fonte