Вот ты go. Я добавил переменную next_pages и переменные previous_pages, которые обязательно получат pagina - 2 и pagina + 2, если они существуют. Дайте мне знать, если вам нужна помощь, чтобы понять это.
<nav>
<?php
$next_pages = ($pagina + 2) <= $numeroDePaginas ? $pagina + 2 : $numeroDePaginas;
$previous_pages = ($pagina - 2) >= 1 ? $pagina - 2 : 1;
?>
<ul class="pagination">
<?php if ($pagina == 1) : ?>
<li class="page-item disabled">
<a class="page-link" href="">
<span class="ti-arrow-left"></span>
</a>
</li>
<?php else : ?>
<li class="page-item">
<a class="page-link" href="?pagina=<?php echo $pagina - 1 ?>">
<span class="ti-arrow-left"></span>
</a>
</li>
<?php endif; ?>
<!---------------------------------------------------------------------->
<?php
for ($i = $previous_pages; $i <= $next_pages; $i++) {
if ($pagina == $i) {
echo "<li class='page-item active'>
<a class='page-link' href='?pagina=$i'>$i</a>
</li>";
} else {
echo "<li class='page-item'>
<a class='page-link' href='?pagina=$i'>$i</a>
</li>";
}
}
?>
<!---------------------------------------------------------------------->
<?php if ($pagina == $numeroDePaginas) : ?>
<li class='page-item disabled'>
<a class='page-link' href=''>
<span class='ti-arrow-right'></span>
</a>
</li>
<?php else : ?>
<li class='page-item'>
<a class='page-link' href="?pagina=<?php echo $pagina + 1 ?>">
<span class='ti-arrow-right'></span>
</a>
</li>
<?php endif; ?>
</ul>
</nav>
Изменить с дополнительными пояснениями:
Я добавил переменную с именем next_pages, эта переменная проверяет, меньше ли текущая страница (например, 9) + 2 больше или равно переменной "NumberroDePaginas", я сделал это, чтобы убедиться, что мы никогда не показываем никаких страниц, превышающих количество страниц, которые у нас есть, в случае, если 9 + 2 больше, чем "NumberroDePaginas", мы устанавливаем переменную, равную "NumberroDePaginas"
Для переменной previous_pages мы гарантируем, что текущая страница (например, 3) - 2 никогда не будет меньше 1, (например, она не показывает 0 или отрицательные страницы), в случае
3-2 меньше 1, мы установили переменную на 1.
Теперь я отредактировал для l oop, чтобы убедиться, что он начинается с переменной previous_pages и заканчивается с переменной next_pages.
Вот тестовый пример:
$pagina = 7;
$numeroDePaginas = 9;
//$next_pages will be = 9 (i.e 7+2)
//$previous_pages will be = 5 (i.e 7-2)
для l oop будет печатать страницы с 5 по 9.