Завершение цикла пагинации в PHP
<div id="pagination">
<div class="prev"><?php next_posts_link('←') ?></div>
<div class="pages">
<?php
global $wp_query;
$big = 9999;
echo paginate_links(array(
'base' => str_replace($big, '%#%', get_pagenum_link($big)),
'format' => '?paged=%#%',
'total' => $wp_query->max_num_pages,
'current' => max(1, get_query_var('paged')),
'show_all' => false,
'end_size' => 1,
'mid_size' => 5,
'prev_next' => false,
'prev_text' => 'Предыдущая',
'next_text' => 'Следующая',
'type' => 'list'
));
?>
</div>
<div class="next"><?php previous_posts_link('→') ?></div>
</div>
Привет, у меня настроен цикл пагинации, и я хочу отображать как номера страниц, так и ссылки "предыдущая/следующая". Однако я пытаюсь понять, как можно ограничить отображение номеров до последних 5 статей [1,2,3,4,5] вместо продолжения до [1,2,3,4,5,6,7]. Как мне сделать так, чтобы пагинация заканчивалась на 5 последних опубликованных статьях в моем блоге?
"Я просто хочу отредактировать часть div-class pages, чтобы она заканчивалась на 5." - Надеюсь, это объясняет мою задачу.

Вы можете попробовать
'total' => min(5,$wp_query->max_num_pages),
Редактирование:
В исходном коде функции paginate_links
http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/general-template.php#L1922
ссылки отображаются в цикле с $n = 1; $n <= $total; $n++
, и поскольку %#%
заменяется на $n
, моя идея заключается в ограничении количества отображаемых страниц, ограничивая $total
минимумом между 5
и $wp_query->max_num_pages
. Надеюсь, это поможет ;-)

Можете объяснить, почему это может решить проблему, и тестировали ли вы это решение?

конечно: я изучил исходный код функции paginate_links
и заметил цикл $n = 1; $n <= $total; $n++
, а так как %#%
заменяется на $n
, я подумал, что можно ограничить количество отображаемых ссылок, ограничив $total
минимумом из 5
и $wp_query->max_num_pages
. По крайней мере, такова была моя идея ;-)

... как часть вашего ответа. Этот ответ был автоматически помечен как "низкое качество из-за длины и содержания", чего, я уверен, вы хотите избежать. Лучше предоставлять объяснение вместе с предлагаемым решением.

ок, спасибо @s_ha_dum, я зарегистрировался всего несколько недель назад, так что всё ещё учу правила здесь ;-) Я обновлю ответ.
