Ensino abaixo como customizar a paginação de posts no WordPress, sem necessáriamente ter que usar um plugin para isso.

O código é muito fácil, permitindo maiores customizações, como o usuário desejar.

Para que ter um plugin ou uma paginação para cada modelo de template se você pode ter um código totalmente customizável servindo para todos?

Crie a função my_paginate_links, segue o código:

function my_paginate_links() {
    global $wp_rewrite, $wp_query;
    $wp_query->query_vars['paged'] > 1 ? $current = $wp_query->query_vars['paged'] : $current = 1;
    $pagination = array(
        'base' => @add_query_arg('page','%#%'),
        'format' => '',
        'total' => $wp_query->max_num_pages,
        'current' => $current,
        'prev_text' => __('« Previous'),
        'next_text' => __('Next »'),
        'end_size' => 1,
        'mid_size' => 2,
        'show_all' => true,
        'type' => 'list'
    );
    if ( $wp_rewrite->using_permalinks() )
            $pagination['base'] = user_trailingslashit( trailingslashit( remove_query_arg( 's', get_pagenum_link( 1 ) ) ) . 'page/%#%/', 'paged' );
    if ( !empty( $wp_query->query_vars['s'] ) )
            $pagination['add_args'] = array( 's' => get_query_var( 's' ) );
    echo paginate_links( $pagination );
}

function my_paginate_links() { global $wp_rewrite, $wp_query; $wp_query->query_vars['paged'] > 1 ? $current = $wp_query->query_vars['paged'] : $current = 1; $pagination = array( 'base' => @add_query_arg('page','%#%'), 'format' => '', 'total' => $wp_query->max_num_pages, 'current' => $current, 'prev_text' => __('« Previous'), 'next_text' => __('Next »'), 'end_size' => 1, 'mid_size' => 2, 'show_all' => true, 'type' => 'list' ); if ( $wp_rewrite->using_permalinks() ) $pagination['base'] = user_trailingslashit( trailingslashit( remove_query_arg( 's', get_pagenum_link( 1 ) ) ) . 'page/%#%/', 'paged' ); if ( !empty( $wp_query->query_vars['s'] ) ) $pagination['add_args'] = array( 's' => get_query_var( 's' ) ); echo paginate_links( $pagination ); }

No modelo de template basta chamar my_paginate_links(). E isto é um exemplo de saída:

obviamente você pode ajustá-lo ao seu gosto.
Espero que tenham gostado!

Leonardo Rodrigues

Apaixonado por internet e curioso por SEO sempre está envolvido em algum projeto web. Você me encontra também no blog Negocio Seo e vê meus Projetos e Redes Sociais...

Participe da conversa

1 Comentário

Comentários Cancelar resposta

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.