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

Blog Wordpress No Computador

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.

Login do Site FTP Cyberduck

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.