Respuestas:
Si por ' página de blog ' se refería a una página estática configurada como página de publicaciones en la Configuración de lectura , puede verificarla haciendo esto:
if ( is_front_page() && is_home() ) {
// Default homepage
} elseif ( is_front_page() ) {
// static homepage
} elseif ( is_home() ) {
// blog page
} else {
//everyting else
}
Cuando usa
is_home()
yis_front_page()
, debe usarlos en el orden correcto para evitar errores y probar la configuración de cada usuario.
(Fuente: Etiquetas condicionales - La página del blog )
O simplemente:
if ( !is_front_page() && is_home() ) {
// blog page
}
O más simplemente (supongo):
if ( is_home() ) {
// blog page
}
Puede utilizar lo siguiente en su archivo de funciones themes.php:
function is_blog () {
return ( is_archive() || is_author() || is_category() || is_home() || is_single() || is_tag()) && 'post' == get_post_type();
}
Y luego pon esto en el archivo que estás revisando:
<?php if (is_blog()) { echo 'You are on a blog page'; } ?>
Puede usar Hooks en su archivo functions.php para enganchar lo anterior, para que aparezca en cada página.
Si por 'página de blog' se refería a una página estática establecida como página de publicaciones en la lectura:
global $wp_query;
if ( isset( $wp_query ) && (bool) $wp_query->is_posts_page ) {
//static blog page
}
PD. Esta solución también funciona en la acción template_redirect
global $wp_query
) pero también porque no responde completamente la pregunta. Es una función, pero el OP preguntó cómo resolver esto en su archivo de encabezado, por lo que podría necesitar un poco más de explicación sobre qué poner dónde. De nuevo, bienvenido, me alegro de tenerte aquí.
Para obtener la página de índice del blog , descubrí que
if ( !is_front_page() && is_home() ) {
// blog page
}
no me funciona, tuve que usar la función get_option ('page_for_posts') para identificar la página del blog post_id, mi respuesta es
if ( !is_front_page() && is_home() ){
if ( empty ( $post_id) ) {
global $post;
$post_id = get_option( 'page_for_posts' );
}
//blog page
}
Hay un método complicado.
Supongamos que si la babosa de tu página de blog es blog
, puedes usar este código.
global $wp_query;
if($wp_query->query['pagename']=='blog'){
// this is blog page
}
Supongo que es muy simple. Estaba en la misma situación y utilicé la siguiente técnica, que es utilizar el slug de la página.
if( is_page('blog') ) {
echo "This is your blog page";
}
Pero asegúrese de no haber seleccionado la página de inicio para mostrar las publicaciones de blog recientes y de haber establecido una página específica para blogs como blog o noticias, etc., solo use esa babosa de página y estará bien.
Puedes usar..
<?php if ( is_single() ) { ?>
Do stuff here
<?php } ?>
para verificar si se trata de una sola publicación de blog. O...
<?php if ( is_home() ) { ?>
Do stuff here
<?php } ?>
para verificar si es la página de inicio del blog
Yo uso de esta manera
// 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() )
, al menos en mi opinión, es si está distribuyendo un tema que tiene un estilo de diseño diferente para la página de inicio predeterminada y la página del blog .