Comment déterminer si je suis sur la première page de la pagination?

19

Comment puis-je déterminer si je suis sur la toute première page de pagination? J'utilise WP_Pagenavi. Je veux exécuter une fonction uniquement sur la première page de la pagination. J'ai vérifié l'option query_var 'paginée', elle a la valeur 0 sur cette page, puis 2, 3 et ainsi de suite dans les pages suivantes (il manque 1!). Quelqu'un connaît une solution propre?

Merci.

    
posée Rutwick Gangurde 14.10.2011 - 07:58
la source

3 réponses

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
}
    
réponse donnée Brady 14.10.2011 - 10:19
la source
27

si vous voulez seulement savoir que vous êtes sur la première page d'une page paginée, essayez is_paged() :

if ( !is_paged() ) {
  // first page of pagination
}
    
réponse donnée Michael 14.10.2011 - 10:31
la source
4

Je recherchais un moyen simple de déterminer s'il fallait utiliser la fonction posts_nav_link() et toutes les solutions I trouvés en ligne étaient soit trop complexes, soit peu fiables. Par exemple, beaucoup de gens ont suggéré d’utiliser la variable globale $paged , mais j’ai trouvé que cette variable renvoyait la même valeur pour la première page, même lorsque la première page était la seule page!

J'ai donc creusé dans le fichier wp-includes/link-template.php et constaté que la fonction posts_nav_link() ne renvoie que la valeur renvoyée par une autre fonction:

/**
 * 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);
}

Grâce à ces connaissances, nous pouvons créer un moyen simple et efficace de déterminer si nous devons ou non ajouter des liens pour naviguer entre les pages:

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

Publié à l'origine sur mon blog, ici .

    
réponse donnée iglvzx 19.03.2013 - 04:01
la source

Lire d'autres questions sur les étiquettes