Determinar se a página é a Página de Postagens


18

Na página Configurações de leitura , você pode definir uma "Página inicial" e uma "Página de postagens". Você pode verificar se a página atualis_front_page();

Existe uma função semelhante para a "Página de postagens". Percebi que is_page();isso não funciona para esta página especial.

obrigado

Respostas:


34

is_home() verifica a "Página de postagens", apesar do nome da função um tanto confusa.


graças, eu pensei que eu verifiquei todos eles, mas eu não acho ...
mike

3
Que tal $wp_query->is_posts_page?
Weston Ruter

@WestonRuter tem a resposta correta para a pergunta.
A J

6

O Wordpress vem com 7 tipos principais de páginas de modelo, que podem ser determinados dessa maneira

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 diz a você que você tem a página do blog.


1

"Página de postagens" geralmente é um arquivo de:

  • postagens de uma categoria
  • postagens de uma tag
  • postagens de uma data (ano, mês ...)
  • posts do arquivo principal

Cada uma delas pode ser verificada por uma das muitas tags condicionais como is_category() is_tag() is_date() is_archive() E muito mais. Para entender melhor, acesse o codex http://codex.wordpress.org/Conditional_Tags


0

Primeiro verifique os blogs relacionados a coisas como autor, tag, tipo de postagem

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 ;
  }

Agora verifique e retorne algo que você deseja que

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

Use como Boss <?php echo check_post_type();?>

Agradecimentos a Wes Bos


0

TL; DR

Caso A . Não há necessidade de determiná-lo dentro do arquivo de modelo principal (index.php) porque é o modelo padrão para ele [1] .

Caso B . Para determiná-lo dentro de um modelo de página (ex: page.php), basta verificar da seguinte forma:

get_option( 'page_for_posts' ) == get_the_ID()

Detalhes

Eu literalmente fui cavando o código-fonte [2] dele apenas para poder saber como o wordpress faz a verificação do valor. Acontece que ele está usando a instrução get_option( 'page_for_posts' )para saber o ID da postagem do valor selecionado da página Postagens .

Então, sim, para esse propósito, não existe uma função oficial do verificador que seja semelhante a is_front_page().

Desde que você saiba o ID da página que você selecionou, poderá usá-lo para o processo de verificação.

Referências

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

  2. Código-fonte de ConfiguraçõesConfigurações de Leitura , github.com/WordPress/.../wp-admin/options-reading.php

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.