Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Template Loop */
- <div class="albums grid">
- <?php
- // Get query var
- global $wp_rewrite;
- if ($wp_rewrite->using_permalinks()) {
- if( !empty( get_query_var('albums'))) {
- $page = get_query_var('albums');
- } else {
- $page = 1;
- }
- } else {
- if( !empty( $_GET['albums'] )) {
- $page = $_GET['albums'];
- } else {
- $page = 1;
- }
- }
- // Variables
- $i = 0;
- $albumspp = 9;
- $albums = get_field('photo_album');
- $total = count($albums);
- $pages = ceil($total / $albumspp);
- $min = (($page * $albumspp) - $albumspp) + 1;
- $max = ($min + $albumspp) - 1;
- // Loop
- if( have_rows('photo_album')) { ?>
- <div class="row">
- <?php while(have_rows('photo_album')): the_row(); $i++;
- /* Ignore this row, if $i is lower than $min */
- if($i < $min) {continue; }
- /* Stop loop completely, if $i is higher than $max */
- if($i > $max) {break; }
- /* Close row after 3 albums and start new one */
- if($c == 4): $c = 0; ?>
- </div>
- <div class="row">
- <?php endif; ?>
- <article <?php post_class('photo-album col-xs-3'); ?>>
- <?php
- $album_title = get_sub_field('photo_album_title');
- $album_thumb = get_sub_field('photo_album_thumb');
- $album_gallery = get_sub_field('photo_album_gallery');
- ?>
- <ul class="thumbnails">
- <li class="cover">
- <?php if ($album_thumb) {
- $imgalt = $album_thumb['alt'];
- $imgsrcsm = $album_thumb['sizes']['thumbnail'];
- $imgsrcmd = $album_thumb['sizes']['medium'];
- $imgsrclg = $album_thumb['sizes']['large'];
- ?>
- <div class="entry-image">
- <a rel="lightbox[<?php echo $album_title; ?>]" href="<?php echo $imgsrclg; ?>" title="<?php echo $album_title; ?>">
- <img src="<?php echo $imgsrcsm; ?>" alt="<?php echo $imgalt; ?>" />
- </a>
- </div>
- <?php } ?>
- <div class="entry-title">
- <a rel="lightbox[<?php echo $album_title; ?>]" href="<?php echo $album_thumb['sizes']['large']; ?>" title="<?php echo $album_title; ?>">
- <h5><?php echo $album_title; ?><i class="icon-arrow-right"></i></h5>
- </a>
- </div>
- </li>
- <!-- Hide the rest of the thumbnails -->
- <?php if ($album_gallery) {
- foreach ($album_gallery as $photo){ ?>
- <li class="hide">
- <a rel="lightbox[<?php echo $album_title; ?>]" href="<?php echo $photo['sizes']['large']; ?>" title="<?php echo $album_title; ?>">
- <img src="<?php echo $photo['sizes']['thumbnail']; ?>" alt="<?php echo $photo['alt']; ?>" />
- </a>
- </li>
- <?php }
- } ?>
- </ul>
- </article>
- <?php $c++; // column count
- endwhile; ?>
- </div>
- <?php } else { ?>
- <p><?php _e('No photo albums found','mytextdomain'); ?></p>
- <?php } ?>
- <!-- Pagination -->
- <?php if ($pages > 1) {
- repeater_pagination($page, $pages, 3);
- } ?>
- </div>
- <?php
- /* ==========================================================================
- ACF Repeater Field Pagination (in functions.php)
- ========================================================================== */
- /**
- * Custom bootstrap pagination for custom ACF repeater field array
- */
- function repeater_pagination($paged = 1, $pages = '', $range = 2) {
- $showitems = ($range * 2) + 1;
- if(1 != $pages) {
- echo "<ul class='pager'>";
- // Arrows left
- if ($paged > 1) echo "<li class='previous'><a href='".get_repeater_pagenum_link($paged - 1)."'><i class='icon-arrow-left'></i></a></li>";
- // Numbers
- for ($i=1; $i <= $pages; $i++) {
- if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems )) {
- echo ($paged == $i)? "<li class='active'><a href='".get_repeater_pagenum_link($i)."'>".$i."</a></li>":"<li><a href='".get_repeater_pagenum_link($i)."'>".$i."</a></li>";
- }
- }
- // Arrows right
- if ($paged < $pages) echo "<li class='next'><a href='".get_repeater_pagenum_link($paged + 1)."'><i class='icon-arrow-right'></i></a></li>";
- echo "</ul>\n";
- }
- }
- /**
- * Custom get_pagenum_link() function for custom paged links
- */
- function get_repeater_pagenum_link($pagenum = 1) {
- global $wp_rewrite;
- $pagenum = (int) $pagenum;
- $pageslug = 'albums';
- $request = remove_query_arg('albums');
- $home_root = parse_url(home_url());
- $home_root = ( isset($home_root['path']) ) ? $home_root['path'] : '';
- $home_root = preg_quote( trailingslashit( $home_root ), '|' );
- $request = preg_replace('|^'. $home_root . '|', '', $request);
- $request = preg_replace('|^/+|', '', $request);
- // Normal Permalinks
- if ( !$wp_rewrite->using_permalinks() || is_admin() ) {
- $base = trailingslashit( get_bloginfo( 'url' ) );
- if ( $pagenum > 1 ) {
- $result = add_query_arg('albums', $pagenum, $base . $request);
- } else {
- $result = $base . $request;
- }
- // Pretty Permalinks
- } else {
- $qs_regex = '|\?.*?$|';
- preg_match( $qs_regex, $request, $qs_match );
- if ( !empty( $qs_match[0] ) ) {
- $query_string = $qs_match[0];
- $request = preg_replace( $qs_regex, '', $request );
- } else {
- $query_string = '';
- }
- $request = preg_replace( "|$pageslug/\d+/?$|", '', $request);
- $request = preg_replace( '|^index\.php|', '', $request);
- $request = ltrim($request, '/');
- $base = trailingslashit( get_bloginfo( 'url' ) );
- if ( $wp_rewrite->using_index_permalinks() && ( $pagenum > 1 || '' != $request ) )
- $base .= 'index.php/';
- if ( $pagenum > 1 ) {
- $request = ( ( !empty( $request ) ) ? trailingslashit( $request ) : $request ) . user_trailingslashit( $pageslug . "/" . $pagenum, 'paged' );
- }
- $result = $base . $request . $query_string;
- }
- $result = apply_filters('get_repeater_pagenum_link', $result);
- return $result;
- }
- /* ==========================================================================
- Rewrite Rules
- ========================================================================== */
- /* Photo albums pagination parameter */
- function add_albums_query_var(){
- global $wp;
- $wp->add_query_var('albums');
- }
- /* Use EP_PERMALINK | EP_PAGES for pages and posts both */
- function albums_rewrite_endpoint(){
- add_rewrite_endpoint('albums', EP_PERMALINK | EP_PAGES);
- }
- add_filter('init', 'add_albums_query_var');
- add_filter('init', 'albums_rewrite_endpoint');
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement