Come determinare se sono sulla prima pagina di impaginazione?


22

Come faccio a determinare se sono nella prima pagina di impaginazione? Sto usando WP_Pagenavi. Voglio eseguire una funzione solo sulla prima pagina dell'impaginazione. Ho controllato query_var 'paged', è impostato su 0 in questa pagina, e poi 2, 3 e così via nelle pagine successive (manca 1!) ... Qualcuno conosce una soluzione pulita?

Grazie.

Risposte:


24
// 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
}

4
Questo è corretto, ma chiamare get_query_var( 'paged' )due volte è ridondante. Il secondo parametro facoltativo di quella funzione è il valore predefinito. Quindi, potresti semplificarlo a: $paged = get_query_var( 'paged', 1 );
Linnea Huxford,

Agosto 2017: Questo non funziona per me, ne esce 1 in ogni pagina. Tuttavia la risposta di Michael ha funzionato perfettamente.
Surjith SM

32

se vuoi solo sapere che sei nella prima pagina di una pagina impaginata prova is_paged():

if ( !is_paged() ) {
  // first page of pagination
}

Questo ha funzionato per me. (Ago 2017). In qualche modo la risposta contrassegnata come corretta non funziona ..
Surjith SM

Eccellente, pulito e semplice.
Traccia DeCoy il

4

Stavo cercando un modo semplice per determinare se utilizzare o meno la posts_nav_link()funzione e tutte le soluzioni che ho trovato online erano troppo complesse o inaffidabili. Ad esempio, molte persone hanno suggerito di utilizzare la $pagedvariabile globale, ma ho scoperto che questa variabile restituiva lo stesso valore per la prima pagina, anche quando la prima era l'unica pagina!

Quindi, ho scavato nel wp-includes/link-template.phpfile e ho scoperto che la posts_nav_link()funzione produce semplicemente il valore di ritorno di un'altra funzione:

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

Utilizzando questa conoscenza, possiamo creare un modo semplice ed efficace per determinare se è necessario aggiungere o meno collegamenti per navigare tra le pagine:

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

Originariamente pubblicato sul mio blog qui .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.