Marc
Forum Replies Created
Viewing 1 replies (of 1 total)
-
Forum: Plugins
In reply to: Image Gallery With PaginationHi guys. I’m not sure if anyone of you guys 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:/*FILTER: GALLERY: --------------------------------------------------------------*/ 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]}" 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: --------------------------------------------------------------*/
The nice thing is that you dont need to use a third part plugin. Hope this helps
Viewing 1 replies (of 1 total)