ACF Реверсивный репитер + Пагинация - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь изменить свой ретранслятор и добавить нумерацию страниц.

Я могу с успехом сделать оба по отдельности, но не могу объединить их.

Код для возврата заказа от ACF:

https://www.advancedcustomfields.com/resources/how-to-sorting-a-repeater-field/

Код для добавления нумерации страниц:

ACF Gallery Pagination в Worpdress

Вот мой код:

<?php 

$repeater       = get_field('summaries');
$order = array();

foreach( $repeater as $i => $row ) {
    $order[ $i ] = $row;
}

array_multisort( $order, SORT_DESC, $repeater );

// Pagination
$items_per_page = 10;
$total_items = count($repeater);
$total_pages = ceil($total_items / $items_per_page);

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

$starting_point = (($current_page-1)*$items_per_page);

if($repeater){
    $row = array_slice($repeater,$starting_point,$items_per_page);
}

if( $repeater ) : ?>
    <?php foreach( $repeater as $i => $row ): ?>

        <div class="container mt4 mb4 articles flexbox-v">
            <strong>Summary: </strong>
            <?= $row['summary']; ?>
        </div>

    <?php endforeach; ?>

<?php endif; 
$big = 999999999;
echo paginate_links(array(
    'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
    'format' => '?paged=%#%',
    'current' => $current_page,
    'total' => $total_pages,
    'before_page_number' => '<span class="screen-reader-text">'.$translated.' </span>'
));
?>

Он по-прежнему выводит ретранслятор в обратном порядке и добавляет функцию разбиения на страницы. Однако элементы 2-й страницы - это просто повторение элементов на первой странице.

Пример. Страница 1: Элементы 1-12, страница 2: Элементы 1-12

Так что, по сути, мне нужно исправить функцию разбивки на страницы, чтобы она работала должным образом, но я не уверен, куда идти.

Спасибо!

...