if (is_home () &&! is_front_page ())

11

Eu vejo muito o seguinte código em arquivos index.php. Eu entendo que is_front_page() retorna true ao visualizar a página inicial do site (exibindo o índice de postagens do blog ou uma página estática), enquanto is_home() retorna verdadeiro ao exibir o Índice de postagens do blog (seja exibido na primeira página ou em um página). Eu ainda estou um pouco perplexo sobre o uso do seguinte código -

        <?php if ( is_home() && ! is_front_page() ) : ?>
            <header>
                <h1 class="page-title screen-reader-text"><?php single_post_title(); ?></h1>
            </header>
        <?php endif; ?>

Qualquer explicação de por que este pedaço de código é tão popular é muito apreciada.

    
por olliew 23.04.2016 / 14:12

3 respostas

9

Isso exibirá o título da página quando uma página estática estiver definida para mostrar postagens.

por exemplo,

Eu mostro posts na minha página inicial ... Não fará nada.

Se eu, por exemplo, mostrar postagens na página com o título Notícias ... Ele mostrará Notícias em H1

Isso é usado para que o título da página seja exibido, sempre que as postagens forem exibidas em uma página, mas nada quando as postagens do blog forem exibidas na primeira página (home page).

Nós fazemos isso porque se estiver na página inicial ... ele mostrará o título do primeiro post, fazendo com que ele apareça duas vezes (uma vez no topo em H1 e novamente quando as postagens estiverem em loop).

    
por shramee 23.04.2016 / 15:03
15

Veja como fazer isso da maneira correta:

if ( is_front_page() && is_home() ) {
// Default homepage

} elseif ( is_front_page()){
//Static homepage

} elseif ( is_home()){

//Blog page

} else {

//everything else

}

Esta é a única maneira (correta) de exibir ou alterar o conteúdo com sua página inicial e sua página do blog.

    
por Md. Abunaser Khan 19.09.2016 / 21:19
4

Não tenho certeza sobre "popular", não parece ser assim para mim (mas eu não vejo muitos temas).

Você parece entender bem o que cada condicional faz, então isso não deve ser confuso para você. Isso combina condições para verificar se o índice do blog está sendo exibido e é não na página inicial.

Ah, a razão para single_post_title() eu acho é que ele exibe o título para $wp_query->queried object (configurado pela consulta principal como contexto atual), em vez de $post global (configurado pelo loop de iteração).

Em algumas circunstâncias, elas serão iguais, mas não nesse caso, como verificações de condição. O loop conterá posts , mas o objeto consultado será page (a menos que eu esteja misturando:).

    
por Rarst 23.04.2016 / 14:32