Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Custom Post Type - Criação de paginação.

Olá amigos,

Como eu posso criar a paginação dentro de uma Custom Post Type?

Dentro da minha functions tem:

function my_pagination() {
    global $wp_query;

    echo paginate_links( array(
        'base'         => str_replace( 999999999, '%#%', esc_url( get_pagenum_link( 999999999 ) ) ),
        'format'     => '?paged=%#%',
        'current'     => max( 1, get_query_var( 'paged' ) ),
        'total'         => $wp_query->max_num_pages,
        'type' => 'list',
        'prev_next' => true,
        'prev_text' => 'Página Anterior',
        'next_text' => 'Próxima Página',
        'before_page_number' => '-',
        'after_page_number' => '>',
        'show_all' => false,
        'mid_size' => 3,
        'end_size' => 1
    ) );
}
add_action( 'init', 'my_pagination' );

E dentro da página customizada tem:


<?php 
            $args = array(     'post_type' => 'materias',
                               'posts_per_page' => '8',
                             'offset' => '-1',
                         );
            $loop = new WP_Query( $args );
            if( $loop->have_posts() ) { ?>

    <?php while( $loop->have_posts() ) {
                    $loop->the_post(); ?>

    //loop

        <?php } ?>
    <?php    } ?>
    <?php my_pagination();?>

Sou iniciante. Poderiam me ajudar? Obrigado!

2 respostas
solução!

Geralmente uso o plugin WP-PageNavi e faço a chamada assim:

Fora de $args coloque isso

$paged = get_query_var('paged');

Coloque dentro do array $args isso:

'paged' => $paged

   <div>
      <?php wp_pagenavi( array( 'query' => $query ) ); ?>
    </div>

Espero ter ajudado.

Jonathan obrigado pela ajuda!

Acabei descobrindo uma outra maneira, sem a instalação de plugin.

Ficou assim:

$args = array(     
'post_type'    => 'materias',
'paged'    => get_query_var('paged') ? get_query_var('paged') : 1
 );
$loop = new WP_Query( $args );
                if( $loop->have_posts() ) { ?>
    <?php while( $loop->have_posts() ) {
                $loop->the_post(); ?>
    \\ loop
    <?php } ?>
<?php }    
echo paginate_links( array(
                        'base' => str_replace( 999999999, '%#%', get_pagenum_link( 999999999 ) ),
                        'format' => '?paged=%#%',
                        'current' => max( 1, get_query_var('paged') ),
                        'total' => $loop->max_num_pages,
                        'prev_next' => true,
                        'prev_text' => 'Página Anterior',
                        'next_text' => 'Próxima Página',
                        'before_page_number' => '-',
                        'after_page_number' => '>',
                        'show_all' => false,
                        'mid_size' => 3,
                        'end_size' => 1
                    ) );
                wp_reset_postdata(); ?>

Abs