default wordpress gallery pagination

I am looking everywhere for a plugin to divide my default WordPress 3.8.3 gallery containing 80 photos into 4 pages of 20 photos through pagination. I have looked online for 2 days now and haven’t been able to find anything… Anyone knows of a plugin?

Thanks

Related posts

Leave a Reply

1 comment

  1. I’m not sure if you manged to resolve this. I do have a solution for this.

    Here is what i have done:
    First created the gallery on the specific page in the wordpress backend. Then in my functions.php file i added the following code:

    add_filter('post_gallery', 'filter_gallery', 10, 2);
    function filter_gallery($output, $attr) 
    {
        global $post;
    
    
    
        //GALLERY SETUP STARTS HERE----------------------------------------//
        if (isset($attr['orderby'])) {
            $attr['orderby'] = sanitize_sql_orderby($attr['orderby']);
            if (!$attr['orderby'])
                unset($attr['orderby']);
        }
        //print_r($attr);
        extract(shortcode_atts(array(
            'order' => 'ASC',
            'orderby' => 'menu_order ID',
            'id' => $post->ID,
            'itemtag' => 'dl',
            'icontag' => 'dt',
            'captiontag' => 'dd',
            'columns' => 3,
            'size' => 'thumbnail',
            'include' => '',
            'exclude' => ''
        ), $attr));
    
        $id = intval($id);
        if ('RAND' == $order) $orderby = 'none';
    
        if (!empty($include)) {
            $include = preg_replace('/[^0-9,]+/', '', $include);
            $_attachments = get_posts(array('include' => $include, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby));
    
            $attachments = array();
            foreach ($_attachments as $key => $val) {
                $attachments[$val->ID] = $_attachments[$key];
            }
        }
        if (empty($attachments)) return '';
        //GALLERY SETUP END HERE------------------------------------------//
    
    
    
    
    
        //PAGINATION SETUP START HERE-------------------------------------//
        $current = (get_query_var('paged')) ? get_query_var( 'paged' ) : 1;
        $per_page = 24;
        //$offset = ($page-1) * $per_page;
        $offset = ($current-1) * $per_page;
        $big = 999999999; // need an unlikely integer
    
    
        $total = sizeof($attachments);
        $total_pages = round($total/$per_page);
        if($total_pages < ($total/$per_page))
        {   $total_pages = $total_pages+1;
        }
        //PAGINATION SETUP END HERE-------------------------------------//
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        //GALLERY OUTPUT START HERE---------------------------------------//
        $output = "<div class="gallery-images">n";
        $counter = 0;
        $pos = 0;
        foreach ($attachments as $id => $attachment) 
        {   $pos++;
            //$img = wp_get_attachment_image_src($id, 'medium');
            //$img = wp_get_attachment_image_src($id, 'thumbnail');
            //$img = wp_get_attachment_image_src($id, 'full');  
    
            if(($counter < $per_page)&&($pos > $offset))
            {   $counter++;
                $largetitle = get_the_title($attachment->ID);
                $largeimg = wp_get_attachment_image_src($id, 'large');  
                $img = wp_get_attachment_image_src($id, array(100,100));        
                $output .= " <a href="{$largeimg[0]}" data-lightbox="example-set" title="{$largetitle}"><img src="{$img[0]}" width="{$img[1]}" height="{$img[2]}" alt="" /></a>n";
            }
    
        }  
        $output .= "<div class="clear"></div>n";
        $output .= "</div>n";
        //GALLERY OUTPUT ENDS HERE---------------------------------------//
    
    
    
    
    
    
        //PAGINATION OUTPUT START HERE-------------------------------------//
        $output .= paginate_links( array(
            'base' => str_replace($big,'%#%',esc_url(get_pagenum_link($big))),
            'format' => '?paged=%#%',
            'current' => $current,
            'total' => $total_pages,
            'prev_text'    => __('&laquo;'),
            'next_text'    => __('&raquo;')
        ) );
        //PAGINATION OUTPUT ENDS HERE-------------------------------------//
    
    
    
    
    
        return $output;
    }
    

    Hope this helps