Vous pouvez le faire avec une seule ligne de code, mais là encore, vous voudrez peut-être ajouter le code à d'autres endroits, donc une fonction est généralement plus 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;
}
REMARQUE: le code peut aller dans votre fichier de fonctions.
Appelez simplement la fonction où vous souhaitez afficher le message "Page x de y", par exemple.
<?php current_paged(); ?>
Si vous avez besoin du code pour travailler avec une requête personnalisée, par exemple. celui que vous avez créé à l'aide WP_Query
, puis passez simplement le nom de la variable qui contient la requête à la fonction.
Exemple de requête inexistante:
$fred = new WP_Query;
$fred->query();
if( $fred->have_posts() )
... etc..
Obtention de la page actuelle de la requête personnalisée à l'aide de la fonction publiée précédemment.
<?php current_paged( 'fred' ); ?>
Si vous voulez juste oublier totalement le support de requête personnalisé et que vous recherchez un one-liner, alors cela devrait le faire.
<?php echo 'Page '. ( get_query_var('paged') ? get_query_var('paged') : 1 ) . ' of ' . $wp_query->max_num_pages; ?>
J'espère que cela pourra aider.. :)
$wp_query->max_num_pages
?