WordPress – adding pagination – visual composer

Solution:1

The solution: inside your while loop add: $totalPages = $q->max_num_pages; Now you can pass $totalPages to your pagination function.

Below I’ve added my pagination function that worked.

Example of usage: my_pagination($totalPages);

function my_pagination($pages = '', $range = 2) {

$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'>";
    if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo "<a href='".get_pagenum_link(1)."'>&laquo;</a>";
    if($paged > 1 && $showitems < $pages) echo "<a href='".get_pagenum_link($paged - 1)."'>&lsaquo;</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 href='".get_pagenum_link($i)."' class='inactive' >".$i."</a>";
        }
    }

    if ($paged < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($paged + 1)."'>&rsaquo;</a>";
    if ($paged < $pages-1 &&  $paged+$range-1 < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($pages)."'>&raquo;</a>";
    echo "</div>\n";
}

}

Solution:2

Use following code

 $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;        
            $posts_per_page=4;          
            $args = array(          
                'paged' => $paged,
                'posts_per_page'=>$posts_per_page
            );          
            $newsposts = new WP_Query($args);
              while($newsposts->have_posts()) :$newsposts->the_post();          
              echo $post->ID.'<br />';
              endwhile; 
              wp_reset_query();
            global $wp_query;
            $big = 999999999; 
            echo paginate_links( array(
                'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
                'format' => '?paged=%#%',
                'current' => max( 1, get_query_var('paged') ),
                'total' => $newsposts->max_num_pages 
            ) );