Разбивка на WordPress Repeater перестала работать после обновления до php7.2 подозрительная проблема с функцией count () - PullRequest
0 голосов
/ 26 апреля 2019

После обновления до php7.2 функция разбиения на страницы перестала работать на галерее, построенной с помощью повторителя ACF.Я подозреваю, что это проблема с функцией count ()

Я нашел несколько статей, относящихся к этому, но не могу решить, как обновить мой код для решения проблемы.Если бы кто-нибудь мог помочь, я был бы очень благодарен.

<?php
/* 
 * Paginate Advanced Custom Field repeater
 */

if( get_query_var('page') ) {
  $page = get_query_var( 'page' );
} else {
  $page = 1;
}

// Variables
$row              = 0;
$images_per_page  = 15; // How many images to display on each page
$images           = get_sub_field( 'main_gallery_images' );
$total            = count( $images );
$pages            = ceil( $total / $images_per_page );
$min              = ( ( $page * $images_per_page ) - $images_per_page ) + 1;
$max              = ( $min + $images_per_page ) - 1;

// ACF Loop
if( have_rows( 'main_gallery_images' ) ) : ?>
    <div id="gallery" class="main">
  <?php while( have_rows( 'main_gallery_images' ) ): the_row();

    $row++;

    // Ignore this image if $row is lower than $min
    if($row < $min) { continue; }

    // Stop loop completely if $row is higher than $max
    if($row > $max) { break; } ?>                     

    <?php 
      $image = get_sub_field( 'image' ); 
      $caption = get_sub_field('caption');
    ?>
    <div class="galleryItem">
        <a href="javascript:void(0)" class="enlarge">
            <div class="image" style="background-image: url(<?php echo $image; ?>)">
            <span><?php echo $caption; ?><em>CLOSE X</em></span>
            </div>
        </a>
    </div>
  <?php endwhile; ?>
    </div>
<div class="galPag">
<?php // Pagination
  echo paginate_links( array(
    'base' => get_permalink() . '%#%' . '/#gallery',
    'format' => '?page=%#%',
    'current' => $page,
    'total' => $pages
  ) );
  ?>
</div>
<?php endif; ?>

Сайт здесь: https://kalmkitchen.co.uk/gallery/

Что должно произойти, это то, что ссылки на страницы разбивают URL и отображаютследующий набор изображений.Происходит то, что URL обновляется, но вы просто получаете первый набор изображений, отображаемых снова.Ссылка «следующая» не обновляется и всегда указывает на страницу 2.

...