¿Cómo determinar si estoy en la primera página de paginación?

19

¿Cómo puedo determinar si estoy en la primera página de paginación? Estoy usando WP_Pagenavi. Quiero ejecutar una función solo en la primera página de la paginación. Revisé el query_var 'paginado', está configurado en 0 en esta página, y luego en 2, 3 y así sucesivamente en las páginas posteriores (¡falta 1!) ... ¿Alguien sabe una solución limpia?

Gracias.

    
pregunta Rutwick Gangurde 14.10.2011 - 07:58

3 respuestas

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
}
    
respondido por el Brady 14.10.2011 - 10:19
27

si solo quieres saber que estás en la primera página de una página paginada, prueba is_paged() :

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

Estaba buscando una forma sencilla de determinar si usar o no la función posts_nav_link() y todas las soluciones que encontrados en línea eran demasiado complejos o poco confiables. Por ejemplo, muchas personas sugirieron usar la variable global $paged , ¡pero encontré que esta variable devolvió el mismo valor para la primera página, incluso cuando la primera página era la única!

Entonces, busqué en el archivo wp-includes/link-template.php y encontré que la función posts_nav_link() simplemente genera el valor de retorno de otra función:

/**
 * 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 este conocimiento, podemos crear una forma simple y efectiva de determinar si necesitamos agregar enlaces para navegar entre páginas:

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

Publicado originalmente en mi blog aquí .

    
respondido por el iglvzx 19.03.2013 - 04:01

Lea otras preguntas en las etiquetas