Quando usar is_home () vs is_front_page ()?

66

Descobri que is_front_pageparece retornar true quando estou visualizando a página inicial e tenho uma única postagem fixa atribuída lá.

Também retorna true quando atribui uma página como a página inicial estática em Configurações> Leitura .

Por que eu iria querer usar is_home()?

N2Mystic
fonte

Respostas:

65

is_front_page()retorna true se o usuário estiver na página ou na página de postagens definida como primeira página em Configurações-> Leitura-> Sua página inicial será exibida

Portanto, se você definir about uscomo primeira página, essa condição só será verdadeira se mostrar a página sobre nós .

is_home() return true quando na página da lista de postagens, geralmente é a página que mostra as 10 últimas postagens.

Se as configurações em Exibições da sua página inicial forem deixadas como padrão, a página inicial retornará verdadeira para ambos is_front_page()eis_home()

Um exemplo de uso is_home():

  • Você definiu sua página de postagens para uma página chamada Notícias .
  • Um usuário navega para lá e no cabeçalho você deseja mostrar navegação adicional
  • Você poderia usar is_home()para fazer isso.
Brady
fonte
18
Exatamente. Eu diferencio da seguinte forma: is_front_page()retorna true ao exibir a página inicial do site (seja exibindo o índice de postagens do blog ou uma página estática), enquanto is_home()retorna true quando visualiza o índice de postagens do blog (seja exibido na primeira página ou em uma página estática).
Chip Bennett
3

Descobri isso is_home()e is_front_page()não entrego o que é esperado para vários sites. Minha solução alternativa usando itens PHP embutidos:

if($_SERVER['REQUEST_URI'] == '/') {
    // you must be on the home page
}

Conforme mencionado nos comentários, essa abordagem não funcionará para instâncias do WP instaladas em subdiretórios da raiz da web. Use a seu critério.

Dylan Pierce
fonte
Por favor, elabore como ele não entrega o que é esperado.
Christine Cooper
Em um site principal de vários sites, se você usar qualquer forma de is_home()ou is_front_page()em uma página estática ou de blog, as funções retornarão falsas.
Dylan Pierce
11
Acabei de testar as duas condições em um ambiente multisite e ambas retornaram true quando visitei as respectivas /páginas.
Christine Cooper
Estou usando a caixa wordpress VVV com o plugin multisite: github.com/Varying-Vagrant-Vagrants/vvv-multisite talvez haja algo mal configurado nele? Independentemente de deixar uma resposta para uma solução alternativa, se alguém vier com uma situação semelhante.
Dylan Pierce
Seu código é quase perfeito, a única coisa é: e se o WP estiver instalado em um subdiretório, por exemplo / blog ou / wordpress. Do que isso será inútil.
Remzi Cavdar
1

Você deseja usar is_home()quando quiser verificar se o usuário está visualizando sua lista de postagens do blog (geralmente definida para exibir 10 postagens por página). Se você tiver um home.phparquivo no seu tema, ele será exibido quando a is_home()condição for verdadeira.

O seguinte também pode remover algumas confusões: quando is_front_page()e is_home()condições, ambas são verdadeiras, o modelo front-page.phpserá usado em vez de home.php.

Momekh
fonte