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

si solo quieres saber que estás en la primera página de una página paginada, prueba con is_paged()
:
if ( !is_paged() ) {
// primera página de la paginación
}

Este me funcionó a mí. (Agosto 2017). De alguna manera, la respuesta marcada como correcta no funciona..

@Gangesh funciona perfectamente. Es un condicional simple de WordPress, mira: https://developer.wordpress.org/reference/functions/is_paged/

Esto es correcto, pero llamar a get_query_var( 'paged' )
dos veces es redundante. El segundo parámetro opcional de esa función es el valor predeterminado.
Por lo tanto, podrías simplificarlo a:
$paged = get_query_var( 'paged', 1 );

Estaba buscando una forma sencilla de determinar cuándo usar o no la función posts_nav_link()
y todas las soluciones que encontré en línea eran demasiado complejas o poco confiables. Por ejemplo, muchas personas sugerían usar la variable global $paged
, pero descubrí que esta variable devolvía el mismo valor para la primera página, ¡incluso cuando la primera página era la única!
Así que indagué en el archivo wp-includes/link-template.php
y encontré que la función posts_nav_link()
simplemente muestra el valor de retorno de otra función:
/**
* Muestra la navegación de enlaces entre páginas de entradas.
*
* @since 0.71
*
* @param string $sep Opcional. Separador para los enlaces de navegación.
* @param string $prelabel Opcional. Etiqueta para páginas anteriores.
* @param string $nxtlabel Opcional. Etiqueta para páginas siguientes.
*/
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 o no agregar enlaces para navegar entre páginas:
$posts_nav = get_posts_nav_link();
if(empty($posts_nav)) {
// no usar posts_nav_link()
} else {
// usar posts_nav_link()
}
Publicado originalmente en mi blog aquí.
