Você pode fazer isso com uma única linha de código, mas, novamente, convém adicionar o código em outros lugares, para que uma função seja geralmente mais útil.
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: O código pode entrar no seu arquivo de funções.
Simplesmente chame a função onde deseja mostrar a mensagem "Página x de y", por exemplo.
<?php current_paged(); ?>
Se você precisar do código para trabalhar com uma consulta personalizada, por exemplo. aquele que você criou usando WP_Query
, basta passar o nome da variável que mantém a consulta para a função.
Exemplo de consulta inexistente:
$fred = new WP_Query;
$fred->query();
if( $fred->have_posts() )
... etc..
Obtendo a página atual da consulta personalizada usando a função postada anteriormente.
<?php current_paged( 'fred' ); ?>
Se você deseja esquecer totalmente o suporte à consulta personalizada e está procurando uma linha, isso deve ser feito.
<?php echo 'Page '. ( get_query_var('paged') ? get_query_var('paged') : 1 ) . ' of ' . $wp_query->max_num_pages; ?>
Espero que ajude.. :)
$wp_query->max_num_pages
?