Come determinare se sono sulla prima pagina della paginazione?
Come posso determinare se mi trovo sulla prima pagina della paginazione? Sto utilizzando WP_Pagenavi. Voglio eseguire una funzione solo sulla prima pagina della paginazione. Ho controllato la query_var 'paged', è impostata a 0 su questa pagina, e poi 2, 3 e così via nelle pagine successive (manca l'1!)... Qualcuno conosce una soluzione pulita?
Grazie.

se vuoi solo sapere se ti trovi nella prima pagina di una pagina impaginata prova con is_paged()
:
if ( !is_paged() ) {
// prima pagina dell'impaginazione
}

Questo ha funzionato per me. (Agosto 2017). In qualche modo la risposta segnata come corretta non funziona..

@Gangesh funziona perfettamente. È un semplice condizionale di WordPress, vedi: https://developer.wordpress.org/reference/functions/is_paged/

È corretto, ma chiamare get_query_var( 'paged' )
due volte è ridondante. Il secondo parametro opzionale di quella funzione è il valore predefinito.
Quindi, potresti semplificarlo in:
$paged = get_query_var( 'paged', 1 );

Stavo cercando un modo semplice per determinare se utilizzare o meno la funzione posts_nav_link()
e tutte le soluzioni che ho trovato online erano troppo complesse o inaffidabili. Ad esempio, molte persone suggerivano di usare la variabile globale $paged
, ma ho scoperto che questa variabile restituisce lo stesso valore per la prima pagina, anche quando la prima pagina è l'unica pagina disponibile!
Così, ho approfondito il file wp-includes/link-template.php
e ho scoperto che la funzione posts_nav_link()
si limita a mostrare il valore restituito da un'altra funzione:
/**
* Mostra i link di navigazione tra le pagine di articoli per le pagine precedenti e successive.
*
* @since 0.71
*
* @param string $sep Opzionale. Separatore per i link di navigazione tra gli articoli.
* @param string $prelabel Opzionale. Etichetta per le pagine precedenti.
* @param string $nxtlabel Opzionale. Etichetta per le pagine successive.
*/
function posts_nav_link( $sep = '', $prelabel = '', $nxtlabel = '' ) {
$args = array_filter( compact('sep', 'prelabel', 'nxtlabel') );
echo get_posts_nav_link($args);
}
Utilizzando questa informazione, possiamo creare un modo semplice ed efficace per determinare se abbiamo bisogno di aggiungere i link per navigare tra le pagine:
$posts_nav = get_posts_nav_link();
if(empty($posts_nav)) {
// non usare posts_nav_link()
} else {
// usa posts_nav_link()
}
Originariamente pubblicato sul mio blog qui.
