Comprobar si la página actual es la página del Blog

19 jul 2013, 14:20:02
Vistas: 162K
Votos: 52

Soy nuevo en WordPress. Estoy buscando una manera de verificar si la página actual es la página del blog en el código del archivo header.

He estado revisando pero no encuentro la manera. Ayúdenme, por favor.

Para verificar si la página actual es la página del blog, puedes usar alguna de estas funciones:

// Método 1
if (is_home()) {
    // Es la página principal del blog
}

// Método 2
if (is_front_page() && is_home()) {
    // Es la página principal estática Y también la página del blog
} elseif (is_front_page()) {
    // Es la página principal estática
} elseif (is_home()) {
    // Es la página del blog
}
0
Todas las respuestas a la pregunta 11
2
68

Si por 'página de blog' te refieres a una página estática configurada como página de entradas en los Ajustes de lectura, entonces podrías verificarlo haciendo esto:

if ( is_front_page() && is_home() ) {
  // Página de inicio por defecto
} elseif ( is_front_page() ) {
  // Página de inicio estática
} elseif ( is_home() ) {
  // Página de blog
} else {
  // Todo lo demás
}

Cuando usas is_home() y is_front_page(), debes usarlos en el orden correcto para evitar errores y probar cada configuración de usuario.

(Fuente: Etiquetas condicionales - La página de blog)

O simplemente:

if ( !is_front_page() && is_home() ) {
  // Página de blog
}

O más simple (supongo):

if ( is_home() ) {
  // Página de blog
}
3 ago 2014 06:50:20
Comentarios

Un caso de uso para usar if ( !is_front_page() && is_home() ), al menos en mi opinión, es si estás distribuyendo un tema que tiene un estilo de diseño diferente para la página de inicio por defecto y la página de blog.

Giraldi Giraldi
3 ago 2014 10:03:14

Estoy encontrando que is_front_page() devolverá verdadero independientemente de si se selecciona el archivo del blog o una página. Necesito verificación. https://codex.wordpress.org/Function_Reference/is_front_page

atwellpub atwellpub
28 may 2017 03:32:40
2
30

Puedes usar lo siguiente en el archivo functions.php de tus temas:

function is_blog () {
    return ( is_archive() || is_author() || is_category() || is_home() || is_single() || is_tag()) && 'post' == get_post_type();
}

Y luego coloca esto en el archivo que estás verificando:

<?php if (is_blog()) { echo 'Estás en una página de blog'; } ?>

Puedes usar Hooks en tu archivo functions.php para enlazar lo anterior, para que aparezca en cada página.

18 abr 2014 11:26:49
Comentarios

Esta es una gran respuesta si quieres determinar si estás en una página de blog, pero no necesariamente en la página de blog (como la página de inicio del blog). Consulta la respuesta de @Giraldi para eso.

Tim Malone Tim Malone
18 abr 2016 01:04:45

Asumí incorrectamente que is_blog() existe porque is_page() existe. No se me ocurrió consultar el Índice oficial de Etiquetas Condicionales de WordPress. Pude aplicar efectivamente esta solución usando el plugin Widget Logic.

Clarus Dignus Clarus Dignus
14 abr 2019 15:34:16
2
19

Si por 'página de blog' te refieres a una página estática configurada como página de entradas en la sección de Lectura:

global $wp_query;

if ( isset( $wp_query ) && (bool) $wp_query->is_posts_page ) {
    //página de blog estática
}

PD: Esta solución también funciona en la acción template_redirect

17 abr 2016 13:33:00
Comentarios

Hola repinsa, bienvenido a WPSE :) Gracias por agregar tu respuesta. Ha recibido algunos votos negativos, probablemente porque tiene un error de sintaxis en el código (le falta un punto y coma después de global $wp_query) pero también porque no responde completamente a la pregunta. Es una función, pero el OP preguntó cómo resolver esto en su archivo de cabecera, por lo que podría necesitar un poco más de explicación sobre qué poner y dónde. Nuevamente, bienvenido, ¡me alegra tenerte aquí!

Tim Malone Tim Malone
18 abr 2016 01:07:04

Esta es en realidad la única buena respuesta aquí, debería haber tenido más votos positivos.

LachoTomov LachoTomov
23 dic 2017 16:16:41
0

Para obtener la página índice del blog, descubrí que

if ( !is_front_page() && is_home() ) {
  // página del blog
}

no funciona para mí, tuve que usar la función get_option('page_for_posts') para identificar el post_id de la Página del Blog, mi solución es

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

    if ( empty ( $post_id) ) {
        global $post;
        $post_id =  get_option( 'page_for_posts' );
    }

    //página del blog
}
16 may 2018 21:58:51
2

Puedes usar..

<?php if ( is_single() ) { ?>

Haz cosas aquí

<?php } ?>

para verificar si es una entrada de blog individual. O...

<?php if ( is_home() ) { ?>

Haz cosas aquí

<?php } ?>

para verificar si es la página de inicio del blog

19 jul 2013 14:23:17
Comentarios

No funciona si has cambiado la página del blog

cdmckay cdmckay
9 oct 2014 18:09:22

Esto no proporciona una respuesta correcta al OP. Esto indica que estás en una entrada individual, no en "la página del blog".

butlerblog butlerblog
27 dic 2017 16:29:08
2

Yo lo hago de esta manera

// Obtener las clases del body como un array
$body_classes = get_body_class();
// Verificar si la clase "blog" existe en el array
if(in_array("blog", $body_classes)) {
   // Hacer algo
}
27 sept 2015 14:07:57
Comentarios

Esto no es ideal, no lo recomendaría.

Uriahs Victor Uriahs Victor
29 sept 2021 01:40:14

No confiaría en una clase CSS.

Azamat Azamat
31 ago 2022 08:13:36
0

Existe un método complicado.

http://example.com/blog

Supongamos que el slug de tu página de blog es blog, puedes usar este código.

global $wp_query;
if($wp_query->query['pagename']=='blog'){
// esta es la página del blog
}
4 oct 2016 16:04:05
0

PÁGINA DE INICIO

if(is_home() && is_front_page() || is_front_page()): // página de inicio estática o por defecto
 ...
endif;

BLOG

if(is_home() && !is_front_page()): // blog
 ...
endif;
17 dic 2016 06:51:06
0

Supongo que es muy simple, yo estuve en una situación similar y utilicé la siguiente técnica que consiste en usar el slug de la página.

if( is_page('blog') ) {
echo "Esta es tu página de blog"; 
}

Pero asegúrate de no haber seleccionado la página de inicio para mostrar las publicaciones recientes del blog y de haber configurado una página específica para los blogs como blog o noticias, etc. Solo usa ese slug de página y estarás bien.

16 sept 2017 11:01:56
0

En mi opinión, la mejor solución en lugar de verificar si la página es la página de inicio o un archivo o no, OR & AND, puedes simplemente verificar la plantilla que utilizas.

Por ejemplo: Yo uso en mi página de entradas del blog esta plantilla:

template-blog.php

Por lo tanto, puedo distinguirla de cualquier otra página de la siguiente manera:

if( is_page_template('template-blog.php') ) {}

Espero que esto ayude.

21 sept 2021 22:11:40
0

Esto funcionó para mí... Incluso cuando entro en publicaciones individuales, el menú del blog se mantiene activo. Con esto, siempre puedes dirigirte a la página del blog.

[Nota: Esto funcionará cuando tu blog sea la 'Página de Publicaciones'] Descripción de la imagen aquí

   <li <?php if(get_post_type() == 'post' )
     {echo 'class="current-menu-item"';} ?> >
       <a href="<?php echo site_url('/blog');?>">
         Blog
       </a>
    </li>
2 dic 2021 22:32:33