• i have this code in functions.php, and i want to make pagination on default wordpress gallery, so can you help me to how can i make wordpress gallery pagination, this code is not working…
    one page show 20 images per page
    help ….

    and how can i add pagination in index.php or in main page…

    /*FILTER: GALLERY:  --------------------------------------------------------------*/
    add_filter('post_gallery', 'filter_gallery', 10, 2);
    function filter_gallery()
    {
        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' => 2,
            '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]}\" 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'    => __('«'),
    		'next_text'    => __('»')
    	) );
    	//PAGINATION OUTPUT ENDS HERE-------------------------------------//
    
        return $output;
    }
    
    /*FILTER: GALLERY:  --------------------------*/
Viewing 1 replies (of 1 total)
Viewing 1 replies (of 1 total)
  • The topic ‘how to make default wordpress gallery pagination’ is closed to new replies.