Respostas:
Se, por ' página do blog ', você quis dizer uma página estática definida como página de postagens nas Configurações de Leitura , você pode verificá-la fazendo o seguinte:
if ( is_front_page() && is_home() ) {
// Default homepage
} elseif ( is_front_page() ) {
// static homepage
} elseif ( is_home() ) {
// blog page
} else {
//everyting else
}
Quando você usa
is_home()
eis_front_page()
, você deve usá-los na ordem correta para evitar erros e testar todas as configurações do usuário.
(Fonte: Tags condicionais - A página do blog )
Ou simplesmente:
if ( !is_front_page() && is_home() ) {
// blog page
}
Ou mais simplesmente (suponho):
if ( is_home() ) {
// blog page
}
Você pode usar o seguinte no arquivo functions.php dos temas:
function is_blog () {
return ( is_archive() || is_author() || is_category() || is_home() || is_single() || is_tag()) && 'post' == get_post_type();
}
E então coloque isso no arquivo que você está verificando:
<?php if (is_blog()) { echo 'You are on a blog page'; } ?>
Você pode usar o Hooks no seu arquivo functions.php para conectar o item acima, para fazer com que apareça em todas as páginas.
Se por "página do blog" você quis dizer uma página estática definida como página de postagens na Leitura:
global $wp_query;
if ( isset( $wp_query ) && (bool) $wp_query->is_posts_page ) {
//static blog page
}
PS. Esta solução também funciona na ação template_redirect
global $wp_query
), mas também porque não responde totalmente à pergunta. É uma função, mas o OP perguntou como resolver isso em seu arquivo de cabeçalho - portanto, pode ser necessário um pouco mais de explicação sobre o que colocar onde. Mais uma vez, bem-vindo, prazer em recebê-lo aqui!
Para obter a página de índice do blog , descobri que
if ( !is_front_page() && is_home() ) {
// blog page
}
não está funcionando para mim, tive que usar a função get_option ('page_for_posts') para identificar a Página do blog post_id, minha resposta é
if ( !is_front_page() && is_home() ){
if ( empty ( $post_id) ) {
global $post;
$post_id = get_option( 'page_for_posts' );
}
//blog page
}
Existe um método complicado.
Suponha que, se o slug da página do seu blog for blog
, você pode usar esse código.
global $wp_query;
if($wp_query->query['pagename']=='blog'){
// this is blog page
}
Eu acho que é muito simples, eu estava na mesma situação e usei a seguinte técnica, que é usar a página slug.
if( is_page('blog') ) {
echo "This is your blog page";
}
Mas verifique se você não selecionou a página inicial para exibir postagens recentes no blog e definiu uma página específica para blogs como blog ou notícias, etc.
Você pode usar..
<?php if ( is_single() ) { ?>
Do stuff here
<?php } ?>
para verificar se é uma única postagem no blog. Ou...
<?php if ( is_home() ) { ?>
Do stuff here
<?php } ?>
para verificar se é a página inicial do blog
Eu uso assim
// Get body classes as array
$body_classes = get_body_class();
// Check if "blog" class exists in the array
if(in_array("blog", $body_classes)) {
// Do stuff
}
if ( !is_front_page() && is_home() )
, pelo menos na minha opinião, é se você estiver distribuindo um tema com um estilo de layout diferente para a página inicial padrão e a página do blog .