Determinar si la página es la página de publicaciones


18

En la página Configuración de lectura , puede establecer una "Página principal" y una "Página de publicaciones". Puede verificar si la página actualis_front_page();

¿Existe una función similar para la "Página de publicaciones"? He notado que is_page();no funciona para esta página especial.

Gracias

Respuestas:


34

is_home() busca la "Página de publicaciones", a pesar del nombre de función algo confuso.


gracias, pensé que todos ellos comprobé, pero supongo que no ...
Mike

3
¿Qué hay de $wp_query->is_posts_page?
Weston Ruter

@WestonRuter tiene la respuesta correcta a la pregunta.
El J

6

Wordpress viene con 7 tipos de páginas de plantillas principales, que se pueden determinar de esta manera

if ( is_main_query() ) {
    // Error
    if ( is_404() ) {
        ;
    }
    // Front page
    if ( is_front_page() ) {
        ;
    }
    // Archive
    if ( is_archive() ) {
        ;
    }
    // Comments popup
    if ( is_comments_popup() ) {
        ;
    }
    // Search
    if ( is_search() ) {
        ;
    }
    // Singular
    if ( is_singular() ) {
        ;
    }
    // Home - the blog page
    if ( is_home() ) {
        ;
    }
}

is_home te dice que tienes la página del blog.


1

"Página de publicaciones" suele ser un archivo de:

  • publicaciones de una categoría
  • publicaciones de una etiqueta
  • publicaciones de una fecha (año, mes ...)
  • publicaciones del archivo principal

Cada una de estas puede verificarse con una de las muchas etiquetas condicionales como is_category() is_tag() is_date() is_archive() Y muchas más. Para obtener una mejor comprensión, diríjase al códice http://codex.wordpress.org/Conditional_Tags


0

Primero revise los blogs relacionados con cosas como autor, etiqueta, tipo de publicación

function is_blog () {
        global  $post;
        $posttype = get_post_type($post );
        return ( ((is_archive()) || (is_author()) || (is_category()) || (is_home()) || (is_single()) || (is_tag())) && ( $posttype == 'post')  ) ? true : false ;
  }

Ahora verifique y devuelva algo que desea tener

function check_post_type(){
    $postType;
    if (is_blog())
      {
         $postType = 'I am post';
      } else
       {
          $postType = 'I am page';
       };
    return $postType;
  }

Úselo como jefe <?php echo check_post_type();?>

Gracias a Wes Bos


0

TL; DR

Un caso . No es necesario determinarlo dentro del archivo de plantilla principal (index.php) porque es la plantilla predeterminada para él. [1] .

Caso B . Para determinarlo dentro de una plantilla de página (ej: page.php), simplemente verifíquelo así:

get_option( 'page_for_posts' ) == get_the_ID()

Detalles

Literalmente fui a cavar el código fuente [2] para poder saber cómo wordpress verifica el valor. Resulta que está usando la declaración get_option( 'page_for_posts' )para conocer el ID de la publicación del valor seleccionado de la página Publicaciones .

Entonces, sí, para este propósito, no existe una función de verificación oficial que sea similar a is_front_page() .

Siempre que conozca la ID de la página que ha seleccionado, puede usarla para el proceso de verificación.

Referencias

  1. WordPress Codex, Desarrollo de temas, codex.wordpress.org/Theme_Development

  2. Código fuente de configuraciónConfiguración de lectura , github.com/WordPress/.../wp-admin/options-reading.php

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.