Paginar posts en un Loop Personalizado con WP-PageNavi

Si estamos usando un loop personalizado con WP_Query y queremos paginar los resultados de la query con el plugin WP-PageNavi, en primer lugar, tendremos que tener el siguiente parámetro en nuestra query:

$nuestra_query = array(
    'paged'     => get_query_var('paged')
);


Este parámetro indica en qué número de página estamos. Si no lo ponemos cuando queramos avanzar de página siempre nos mostrará lo mismo porque el plugin asumirá que está en la primera.
Luego hay que llamar a la función de WP-PageNavi indicándole el objeto WP_Query que estamos usando:

    if (function_exists( 'wp_pagenavi' )) {
        wp_pagenavi( array( 'query' => $nuestra_query ) );
    }

A continuación os pongo un ejemplo completo:

    // Obtenemos todos los posts con 10 en cada página
    $args = array(
        'post_type'         => 'post',
        'posts_per_page'    => 10,
        'paged'             => get_query_var('paged')
    );

    $nuestra_query = new WP_Query( $args );

    if ( $nuestra_query->have_posts() ) {
        while ( $nuestra_query->have_posts() ) {
            // Mostramos lo que queramos de cada post
        }
    }

    if (function_exists( 'wp_pagenavi' )) {
        wp_pagenavi( array( 'query' => $nuestra_query ) );
    }

    wp_reset_postdata();

2 opiniones en “Paginar posts en un Loop Personalizado con WP-PageNavi”

Deja un comentario