Como Adicionar Paginação no WordPress para Substituir a Navegação Anterior/Próxima

Se você decidir começar um blog no WordPress, a configuração padrão para as páginas de arquivo de paginação do WordPress é Anterior/Próxima. Essa configuração é suficiente para a maioria das pessoas, que provavelmente não pensariam duas vezes sobre isso. Mas se você é do tipo exigente que gosta de ajustar tudo, pode querer que suas páginas mostrem números de página em vez disso.
Se este for o caso, você tem duas opções. Você pode alterar o código ou pode optar pela maneira fácil e usar um plugin.
Índice
- Adicionar Paginação a um Blog WordPress Sem um Plugin
- Posso dividir um único post ou página do WordPress em várias páginas?
- Usar um Plugin do WordPress para Substituir Anterior/Próxima por Números
Adicionar Paginação a um Blog WordPress Sem um Plugin
Se a ideia de usar mais um plugin não é muito atraente (eles realmente desaceleram seu site, afinal), você pode decidir que alterar o código é o melhor caminho a seguir. Na verdade, não é tão difícil se você souber onde procurar. Se você não souber, nós iremos mostrar.
Primeiro, você precisa de um programa FTP. Este é simplesmente um programa que faz login em seu site e exibe os arquivos do site. O mais popular é o FileZilla, mas você pode usar qualquer um que desejar. Eu pessoalmente uso o CyberDuck. Ambos são gratuitos, mas o CyberDuck tem um pop-up irritante para fazer doações ao desenvolvedor.
Faça login em seu site usando seu programa FTP e você verá os arquivos.

Agora procure um arquivo chamado functions.php. Ele está na pasta do seu tema, que geralmente está localizada em /wp-content/themes/NOME DO TEMA. Abra o arquivo functions.php com um editor de texto e adicione o seguinte ao final do arquivo. Lembre-se de salvar as alterações do arquivo depois.
function numeric_posts_nav(){
if( is_singular())
return;
global$wp_query;
/** Interrompa a execução se houver apenas 1 página */
if($wp_query->max_num_pages<=1)
return;
$paged= get_query_var('paged') ? absint( get_query_var('paged')):1;
$max=intval($wp_query->max_num_pages);
/** Adicione a página atual ao array */
if($paged>=1)
$links[]=$paged;
/** Adicione as páginas ao redor da página atual ao array */
if($paged>=3){
$links[]=$paged-1;
$links[]=$paged-2;
}
if(($paged+2)<=$max){
$links[]=$paged+2;
$links[]=$paged+1;
}
echo'
'."\n";
/** Link do Post Anterior */
if( get_previous_posts_link())
printf('
%s
'."\n", get_previous_posts_link());
/** Link para a primeira página, mais reticências se necessário */
if(!in_array(1,$links)){
$class=1==$paged ? ' class="active"':'';
printf('%s'."\n",$class, esc_url( get_pagenum_link(1)),'1');
if(!in_array(2,$links))
echo'
…
';
}
/** Link para a página atual, mais 2 páginas em ambas as direções se necessário */
sort($links);
foreach((array)$links as $link){
$class=$paged==$link ? ' class="active"':'';
printf('%s'."\n",$class, esc_url( get_pagenum_link($link)),$link);
}
/** Link para a última página, mais reticências se necessário */
if(!in_array($max,$links)){
if(!in_array($max-1,$links))
echo'
…
'."\n";
$class=$paged==$max ? ' class="active"':'';
printf('%s'."\n",$class, esc_url( get_pagenum_link($max)),$max);
}
/** Link do Próximo Post */
if( get_next_posts_link())
printf('
%s
'."\n", get_next_posts_link());
echo'
'."\n";
}Em seguida, abra o arquivo onde a paginação é exibida. Normalmente, este é o arquivo index.php e archive.php. Cole o seguinte código para exibir a paginação.