Potresti farlo con una singola riga di codice, ma, di nuovo, potresti voler aggiungere il codice in altri punti, quindi una funzione è di solito più utile.
function current_paged( $var = '' ) {
if( empty( $var ) ) {
global $wp_query;
if( !isset( $wp_query->max_num_pages ) )
return;
$pages = $wp_query->max_num_pages;
}
else {
global $$var;
if( !is_a( $$var, 'WP_Query' ) )
return;
if( !isset( $$var->max_num_pages ) || !isset( $$var ) )
return;
$pages = absint( $$var->max_num_pages );
}
if( $pages < 1 )
return;
$page = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
echo 'Page ' . $page . ' of ' . $pages;
}
NOTA: il codice può andare nel file delle funzioni.
È sufficiente chiamare la funzione in cui si desidera mostrare il messaggio "Pagina x di y", ad es.
<?php current_paged(); ?>
Se è necessario che il codice funzioni con una query personalizzata, ad es. uno che hai creato usando WP_Query
, quindi passa semplicemente il nome della variabile che contiene la query alla funzione.
Esempio di query inesistente:
$fred = new WP_Query;
$fred->query();
if( $fred->have_posts() )
... etc..
Ottenere la pagina corrente per la query personalizzata utilizzando la funzione pubblicata in precedenza.
<?php current_paged( 'fred' ); ?>
Se vuoi dimenticare completamente il supporto delle query personalizzate e stai cercando un one-liner, allora questo dovrebbe farlo.
<?php echo 'Page '. ( get_query_var('paged') ? get_query_var('paged') : 1 ) . ' of ' . $wp_query->max_num_pages; ?>
Spero possa aiutare.. :)
$wp_query->max_num_pages
?