Como determinar se estou na primeira página de paginação?

19

Como faço para determinar se estou na primeira página de paginação? Estou usando o WP_Pagenavi. Eu quero executar uma função apenas na primeira página da paginação. Eu verifiquei o query_var 'paginado', é definido como 0 nesta página e, em seguida, 2, 3 e assim por diante nas páginas posteriores (1 está faltando!) ... Alguém sabe uma solução limpa?

Obrigado.

    
por Rutwick Gangurde 14.10.2011 / 07:58
fonte

3 respostas

23
// get current page we are on. If not set we can assume we are on page 1.
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
// are we on page one?
if(1 == $paged) {
    //true
}
    
por Brady 14.10.2011 / 10:19
fonte
27

Se você quiser saber apenas que está na primeira página de uma página paginada, tente is_paged() :

if ( !is_paged() ) {
  // first page of pagination
}
    
por Michael 14.10.2011 / 10:31
fonte
4

Eu estava procurando uma maneira simples de determinar se devo ou não usar a função posts_nav_link() e todas as soluções que eu encontrados on-line ou eram muito complexos ou não confiáveis. Por exemplo, muitas pessoas sugeriram usar a variável global $paged , mas descobri que essa variável retornou o mesmo valor para a primeira página, mesmo quando a primeira página era a única página!

Então, eu procurei no arquivo wp-includes/link-template.php e descobri que a função posts_nav_link() simplesmente produz o valor de retorno de outra função:

/**
 * Display post pages link navigation for previous and next pages.
 *
 * @since 0.71
 *
 * @param string $sep Optional. Separator for posts navigation links.
 * @param string $prelabel Optional. Label for previous pages.
 * @param string $nxtlabel Optional Label for next pages.
 */
function posts_nav_link( $sep = '', $prelabel = '', $nxtlabel = '' ) {
    $args = array_filter( compact('sep', 'prelabel', 'nxtlabel') );
    echo get_posts_nav_link($args);
}

Usando esse conhecimento, podemos criar uma maneira simples e eficaz de determinar se precisamos ou não adicionar links para navegar entre as páginas:

$posts_nav = get_posts_nav_link();
if(empty($posts_nav)) {
    // do not use posts_nav_link()
} else {
    // use posts_nav_link()
}

Originalmente publicado no meu blog aqui .

    
por iglvzx 19.03.2013 / 04:01
fonte