2015-01-29 2 views
2

У меня есть этот цикла по каждому элементу Wich шоу сторонников, расположенные в post_meta от пользовательского типа поста. Я хочу добавить pagination в цикл foreach. Я уже нашел способ решить, сколько сторонников показано, нарезая массив, но теперь я в недоумении. И не знаю, как действовать дальше.Как рисовать петлю foreach?

Функция получить массив сторонников

function getSupporters($petitieID){ 
$support = get_post_meta(get_the_ID(), 'supporters', true); 

if (!empty($support)){ 
    return $support; 
}} 

Функция, чтобы показать отдельных сторонников в массиве

function showSupporters($petitieID){ 

$supporters = getSupporters($petitieID); 
if (!empty($supporters)){ 
    foreach (array_slice($supporters, 0, 2) as $supporter){ 

    $supporterID = $supporter->post_author; 
     the_author_meta('first_name', $supporterID); 
    } 

}else { 

    echo 'no votes'; 
} 
} 
+0

Я бы на стороне клиента (JS) постраничной, а затем на стороне сервера (PHP), так как вы уже занимаются во всем наборе данных ($ сторонников). – Masiorama

+0

Вы можете найти полное решение здесь http://stackoverflow.com/questions/22145259/simple-pagination-for-foreach-loop Спасибо Netbros –

ответ

3

Вы можете определить, какая страница в настоящее время показано в переменной GET в ваш адрес

.../supporters.php?page=1 

Затем вы можете установить смещение вашей array_slice функции соответственно

$nItemsPerPage = 2; 
$page = isset($_GET['page'])?$_GET['page']:1; 
array_slice($supporters, $nItemsPerPage*($page-1), $nItemsPerPage) 
Смежные вопросы