Paginate Links in Wp Query Shortcode

so been looking around for this answer, but no go -- basically i have a WP Query that is incased in a shortcode.. I have set up the paginate links function which outputs it on the page. However, the page url does not change when clicked (href does show the correct url -- /page/2) I know it is something with the main Query when executed in a shortcode. Any help would be greatly appreciated.

$paged = ( get_query_var( 'paged' ) ) ? absint( get_query_var( 'paged' ) ) : 1;

$args = array(
    'post_type' = $type,
    'posts_per_page' = -1,
    'orderby' = 'rand',
    'paged' = $paged

);

    $the_query = new WP_Query($args); 

// Put default query object in a temp variable
$tmp_query = $wp_query;
// Now wipe it out completely
$wp_query = null;
// Re-populate the global with our custom query
$wp_query = $the_query;

?




    div class="row"
?php  if ( $the_query-have_posts() ) :  $i=0; ?



    !-- the loop --
    ?php while ( $the_query-have_posts() ) : $the_query-the_post(); 
        $sphere = get_post_meta(get_the_id(),'testimonial_profession', true);
        if ($i == 2) {
        $i = 0;
        ?
        /div
        div class="row"
        ?php
    }

    ?
        div class="col-md-6 col-sm-12 col-xs-12"
                        div class="testimonial_inner_wrapper"
                                ?php if(!has_post_thumbnail()): ?
                                h4 class="testimonials-inner-title"?php the_title(); ?/h4
                                ?php if(!empty($sphere)): ?
                                    div class="testimonial_sphere"?php echo($sphere); ?/div
                                ?php endif; ?
                                div class="short_separator"/div
                            ?php else: ?
                                div class="media"
                                    div class="media-left media-top"
                                        div class="testimonial-media-unit"
                                            ?php the_post_thumbnail('img-69-69', array('class'='testimonial-media-unit-rounded')); ?
                                        /div
                                    /div
                                    div class="media-body"
                                        h4 class="testimonials-inner-title"?php the_title(); ?/h4
                                        ?php if(!empty($sphere)): ?
                                            div class="testimonial_sphere"?php echo($sphere); ?/div
                                        ?php endif; ?
                                        div class="short_separator"/div
                                    /div  
                                /div
                            ?php endif; ?
                                                        div class="testimonial_inner_content" style="color:#aaaaaa"p?php the_excerpt(); ?/p
/div
                        /div !-- inner wrapper --
                    /div


    ?php $i++; endwhile; ?
    !-- end of the loop --
/divdiv class="poNav"
     ?php

$big = 999999999; // need an unlikely integer

echo paginate_links( array(
    'base' = str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
    'format' = '?paged=%#%',
    'current' = max( 1, get_query_var('paged') ),
    'total' = $the_query-max_num_pages
) );

    $wp_query = NULL;
$wp_query = $temp_query;
?/div

    ?php wp_reset_postdata(); ?
    ?php
    $myvariable = ob_get_clean();
    return $myvariable; ?

?php else : ?
    p?php _e( 'Sorry, no posts matched your criteria.' ); ?/p
?php endif; 
}

Topic paginate-links pagination Wordpress

Category Web


Your $args variable would be helpful.

As I can see, you are creating custom WP_QUERY, so get_query_var('paged') isn't related to your $the_query = new WP_QUERY, but to global $wp_query.

Possible solution: declare global $paged and add it to $args = array( /* your args here*/, 'paged' => $paged );, also change your get_query_var('paged') to $paged

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.