Tags & Hacks Tutoriais

Paginação de Posts

29 de March de 2011

Mais uma funçãozinha daquelas que a gente adora para substituir o uso de plugins.
Como o nome já diz, faz a paginação de posts. Exemplo:

1. Abra o arquivo functions.php do seu tema e adicione:

function pagination($pages = '', $range = 5)
{
$showitems = ($range * 2)+1;
global $paged;
if(empty($paged)) $paged = 1;
if($pages == ''){
global $wp_query;
$pages = $wp_query->max_num_pages;
if(!$pages){
$pages = 1;
}
}
if(1 != $pages){
echo "<div class=\"pagination\"><span class=\"current\">Página ".$paged." de ".$pages."</span>";
if($paged > 1 && $showitems < $pages) echo "<a title=\"Anterior\" href='".get_pagenum_link($paged - 1)."'>&laquo;</a>";
for ($i=1; $i <= $pages; $i++)
{
if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems ))
{
echo ($paged == $i)? "<span class=\"current\">".$i."</span>":"<a title=\"Página $i\" href='".get_pagenum_link($i)."' class=\"inactive\">".$i."</a>";
}
}
if ($paged < $pages && $showitems < $pages) echo "<a title=\"Próxima\" href=\"".get_pagenum_link($paged + 1)."\">&raquo;</a>";
echo "</div>\n";
}
}

Lembrando que deve estar sempre dentro de <?php e ?>

2. Abra seu arquivo index.php do seu tema (se quiser também pode colocar no search.php e archive.php) e adicione onde quer que mostre a paginação:

<?php pagination()?>

3. Adicione ao seu arquivo CSS e modifique como quiser:

.pagination {
clear: both;
margin:3px 1px;
text-align:center;
}
.pagination a {
margin:3px 1px;
padding: 3px 6px;
color: #fff;
background-color: #a1a1a1;
}
.pagination a:hover,.pagination .current {
margin:3px 1px;
padding: 3px 6px;
color: #a1a1a1;
background-color: #f8f8f8;
}

Original daqui: wordpressapi.com, traduzido e modificado por mim.

Troquei a função desse tutorial porque o primeiro que postei, não funcionava corretamente na paginação dos arquivos.

heart


Leia Também

Deixe seu comentário

22/07/2013 ・ 05:47

Olá Tamara!

Em primeiro lugar agradeço gentilmente por este tutorial, pois utilizo há tempo e funciona perfeitamente. Muito obrigado!

Por favor, você sabe me dizer como faço para colocar um link para a última página (escrito “última”) ao final da paginação?

Caso o usuário queira verificar a última página, ele não precise ficar passando as páginas de quantidade em quantidade.

Agradeço gentilmente a atenção.

Sucesso sempre!

Tamara
03/11/2013 ・ 20:18

Bom Tamara(lindo nome) gostaria de colocar paginação nas minha página de últimas notícias, no meu código termino o loop da seguinte forma:

Onde colocaria o código que chama a paginação antes ou depois de terminar o loop?
E que tentei e não tá dando certo. Sugeri algo?

    04/11/2013 ・ 07:41

    Seu código não apareceu no comentário, mas eu costumo colocar logo depois de:
    <?php endwhile; ?>

22/01/2015 ・ 15:44

Boa Tarde Tamara,

Adorei o tutorial, está de parabens, estou com uma dúvida, acho que bastante simples, como eu faço o query da página?

Estou usando essa paginação nos posts, a paginação até funciona, mas a query busca sempre os primeiro posts, como faço o query pra isso?

    23/01/2015 ・ 06:31

    Depende, você quer criar uma query para exibir o que?