Como fazer paginação no wordpress sem plugin

Como todos sabem aqui no EscolaSites, sou um grande admirador do wordpress e tenho a convicção de que ele é um dos melhores CMS que existem no mercado, mas alguns blogueiros fazem com que o wordpress não fique tão bom quanto inicialmente e fazem com que seus sites/blogs fiquem lentos,  instalando dezenas de plugins.

Instalar plugins em demasia

Já foi discutido aqui e em outros blogs o quão ruim é para blogs possuirem muitos plugins, alguns limitam esse número em 10, outros em 15, eu acho que depende muito dos plugins em questão, afinal há muitos plugins que definitivamente não podemos viver sem.

Vamos instalar menos plugins?

Para que você viva sem alguns plugins, vou iniciar uma série de artigos em que irei ensinar como obter resultados semelhantes a plugins que necessitamos ter em nossos blogs, para começar irei descrever como fazer paginação do blog sem o uso do tão querio WP page-navi.

O Código da Função

{code type=php}
function paginacao_escolasites($paginas = ”, $numlinks = 2){
$qtde = ($numlinks * 2)+1;

global $paged;
if(empty($paged)) $atual = 1; else $atual = $paged;

if($paginas == ”){
global $wp_query;
$paginas = $wp_query->max_num_pages;
if(!$paginas){
$paginas = 1;
}
}

if($paginas != 1){
echo “<div class=’paginacao’>”;
if($atual > 2 && $atual > $numlinks + 1 && $qtde < $paginas) echo “<a href='”.get_pagenum_link(1).”‘>&laquo; Primeira</a>”;
if($atual > 1 && $qtde < $paginas) echo “<a href='”.get_pagenum_link($atual – 1).”‘>&laquo;</a>”;

for ($i=1; $i <= $paginas; $i++){
if (1 != $paginas &&( !($i >= $atual + $numlinks + 1 || $i <= $atual – $numlinks – 1) || $paginas <= $qtde )){
echo ($atual == $i)? “<span class=’atual’>”.$i.”</span>”:”<a href='”.get_pagenum_link($i).”‘ class=’inactive’ >”.$i.”</a>”;
}
}

if ($atual < $paginas && $qtde < $paginas) echo “<a href='”.get_pagenum_link($atual + 1).”‘>&raquo;</a>”;
if ($atual < $paginas – 1 && $atual + $numlinks – 1 < $paginas && $qtde < $paginas) echo “<a href='”.get_pagenum_link($paginas).”‘>&raquo; Última</a>”;
echo “<div class=’paginas’>Página “. $atual . ” de ” . $paginas . “</div>”;
echo “</div>n”;
}
}

{/code}

Use o código no functions.php, para que a função possa ser chamada em todas as páginas do template que haja necessidade, a primeira vista o código pode parecer um pouco complicado, mas certamente irei explicar para ficar um pouco mais claro.

A explicação do código

O primeiro a se fazer em nosso código é carregar algumas informações que o próprio wordpress nos disponibiliza, é os casos da página atual em que estamos e o total de páginas da consulta atual, isso é feito nas linhas 5 até a linha 16.

A seguir nosso código realiza algumas verificações, que vou explicar um pouco por alto para que o artigo não fique tão grande:

  • Verifica se a página atual é maior do que o número de links + 1, se for imprime o link para a primeira página
  • Verifica se a página atual não é a primeira, se não for imprime o link para a página anterior
  • Verifica se a página não é a última, se não for imprime o link para a próxima página
Menos um plugin instalado no EscolaSites, isso deixará nosso site mais rápido espero que deixe o seu também.

CSS de Bônus

{code type=css}

.paginacao{
margin: 0px 0px 20px 0px;
}
.paginacao a{
background-color: #2D5C90 !important;
border: 1px solid #295382 !important;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
color: #FFFFFF;
padding: 8px 13px !important;
margin: 2px;
font-weight: bold;
}
.paginacao a:hover{
border: 1px solid #D18604 !important;
background-color: #E39204 !important;
}
.paginacao span.atual{
border: 1px solid #D18604 !important;
background-color: #E39204 !important;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
color: #FFFFFF;
padding: 8px 13px !important;
margin:2px !important;
}
.paginacao .paginas{
float: right;
font-weight: bold;
margin-top: -3px;
}

{/code}

Altere o plugin e sobretudo o css a contento, para que não fique idêntico ao do EscolaSites.

Gostou da função? Sabe de alguma melhor? Acha melhor usar o plugin? Comente e não deixe de compartilhar o conhecimento.

Receba as melhores dicas para criar um negócio digital lucrativo

Jair Rebello

Empreendedor e Nômade Digital. Dedica grande parte do seu tempo para criar soluções como o Plugin SqueezeWP e o Template ConversionWP Premium que ajudam dezenas de milhares de empreendedores a desenvolverem seus negócios.

Website: http://www.rebello.blog.br