Question

I am useing wp- simple page navigation plugin and my code in template for navigation is given below

 <?php

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

     $args = array( 'post_type' => 'product', 'posts_per_page' => 6, 'product_cat' => '', 'orderby' => 'rand' ,  'paged' => $page );
     $loop = new WP_Query( $args );
     while ( $loop->have_posts() ) : $loop->the_post(); global $product; ?>

      <div class="view view-eighth">
       <?php echo get_the_post_thumbnail($loop->post->ID, 'shop_catalog', array(
        'style' => 'width: 243px; height: 323px;'
       )); ?>
       <div class="mask">
        <div class="product_name"><?php echo esc_attr($loop->post->post_title ? $loop->post->post_title : $loop->post->ID); ?></div>
        <div class="price">
                                 <span><?php echo get_woocommerce_currency_symbol(); ?></span><?php echo get_post_meta( get_the_ID(), '_regular_price', true); //$product->get_price_html(); ?></div>
        <div class="add_to_cart_btn">
                                 <a href="<?php echo $product->add_to_cart_url(); ?>">Add to cart</a>
                                </div>
        <div class="details"><a href="<?php echo get_permalink( $loop->post->ID ); ?>">View Details</a></div>
       </div>
      </div>

    <?php endwhile;  wp_simple_pagination();   wp_reset_query(); ?>

My pagination showing but when i click on page number its not working

Any idea help greatly appreciated

Thanks
In advance

Was it helpful?

Solution

Place the below custom pagination function in your theme's functions.php file, then call the function on page, where you want the pagination to appear, like this if (function_exists('_numeric_posts_nav')) {_numeric_posts_nav();}:

/********* CUSTOM PAGINATION ***********/

if (!function_exists('_numeric_posts_nav')) {
    function _numeric_posts_nav() {
    global $wp_query;
    /** Stop execution if there's if it is single past/page or only 1 page */
        if( is_singular() ) return;
        if( $wp_query->max_num_pages <= 1 ) return;

        $paged = get_query_var( 'paged' ) ? absint( get_query_var( 'paged' ) ) : 1;
        $max   = intval( $wp_query->max_num_pages );

        /** Add current page to the array */
        if ( $paged >= 1 )
            $links[] = $paged;

        /** Add the pages around the current page to the array */
        if ( $paged >= 3 ) {
            $links[] = $paged - 1;
            $links[] = $paged - 2;
        }

        if ( ( $paged + 2 ) <= $max ) {
            $links[] = $paged + 2;
            $links[] = $paged + 1;
        }

        echo '<div class="navigation clearfix"><ul>' . "\n";
        /** Previous Post Link */
        if ( get_previous_posts_link() )
            printf( '<li>%s</li>' . "\n", get_previous_posts_link() );
        /** Link to first page, plus ellipses if necessary */
        if ( ! in_array( 1, $links ) ) {
            $class = 1 == $paged ? ' class="active"' : '';
            printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( 1 ) ), '1' );
            if ( ! in_array( 2, $links ) )
                echo '<li>…</li>';
        }
        /** Link to current page, plus 2 pages in either direction if necessary */
        sort( $links );
        foreach ( (array) $links as $link ) {
            $class = $paged == $link ? ' class="active"' : '';
            printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $link ) ), $link );
        }
        /** Link to last page, plus ellipses if necessary */
        if ( ! in_array( $max, $links ) ) {
            if ( ! in_array( $max - 1, $links ) )
                echo '<li>…</li>' . "\n";

            $class = $paged == $max ? ' class="active"' : '';
            printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $max ) ), $max );
        }
        /** Next Post Link */
        if ( get_next_posts_link() )
            printf( '<li>%s</li>' . "\n", get_next_posts_link() );
            echo '</ul></div>' . "\n";
    }
}

That's it. You do not need a special plugin of pagination anymore and all links will work. Optionally you can set different CSS classes inside the function.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top