# Page pagination

**URL:** <https://forum.getkirby.com/t/page-pagination/29381>\
**Category:** Questions\
**Tags:** v3\
**Created:** [August 26, 2023, 10:51am UTC](https://forum.getkirby.com/t/page-pagination/29381 "2023-08-26T10:51:56Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Dawidasam](https://avatars.discourse-cdn.com/v4/letter/d/439d5e/32.png) [@Dawidasam](https://forum.getkirby.com/u/Dawidasam)\
**Post date:** [August 26, 2023, 10:51am UTC](https://forum.getkirby.com/t/page-pagination/29381/1 "2023-08-26T10:51:56Z")

</div>

Hi I am creating a page pagination, how can I change to instead of  
“[http://localhost:8000/tags/page;2](http://localhost:8000/tags/page;2)”  
was  
“[http://localhost:8000/tags/strona;2](http://localhost:8000/tags/strona;2)”

By the way, if someone has time, they can check if the code below is correct

```
<?php
    $filterBy = get('kategoria');
    $unfiltered = $page->children()->listed();
    $projects = $unfiltered
    ->when($filterBy, function($filterBy) {
    return $this->filterBy('category', $filterBy);
    })
    ->paginate(3);

    $pagination = $projects->pagination();
    $filters = $unfiltered->pluck('category', null, true);
?>

<main class="main">
    <h1><?= $page->title() ?></h1>
    <nav class="filter">
        <a href="<?= $page->url() ?>">All</a>
        <?php foreach ($filters as $filter): ?>
        <a href="<?= $page->url() ?>?kategoria=<?= $filter ?>"><?= $filter ?></a>
        <?php endforeach ?>
    </nav>

    <ul class="projects">
        <?php foreach ($projects as $project): ?>
        <li>
            <a href="<?= $project->url() ?>">
                <figure>
                    <?= $project->image()->crop(400, 500) ?>
                    <figcaption>
                        <?= $project->title() ?><br>
                        <small><?= $project->category() ?></small>
                    </figcaption>
                </figure>
            </a>
        </li>
        <?php endforeach ?>
    </ul>

    <?php if ($pagination->hasPages()): ?>
    <nav class="pagination">
        <?php if ($pagination->hasPrevPage()): ?>
        <a href="<?= $pagination->prevPageUrl() ?>" aria-label="Go to previous page">&larr;</a>
        <?php else: ?>
        <span>&larr;</span>
        <?php endif ?>

        <span>Page <?= $pagination->page() ?> of <?= $pagination->pages() ?></span>

        <?php if ($pagination->hasNextPage()): ?>
        <a href="<?= $pagination->nextPageUrl() ?>" aria-label="Go to next page">&rarr;</a>
        <?php else: ?>
        <span>&rarr;</span>
        <?php endif ?>
    </nav>
    <?php endif ?>

    <?php foreach ($pagination->range(3) as $r): ?>
    <li>
        <a<?= $pagination->page() === $r ? ' aria-current="page"' : '' ?> href="<?= $pagination->pageURL($r) ?>">
            <?= $r ?>
            </a>
    </li>
    <?php endforeach ?>
</main>

```

Have a nice day!

---

<div class="post-metadata">

**Author:** ![texnixe](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.getkirby.com/texnixe/32/5754_2.png) [@texnixe](https://forum.getkirby.com/u/texnixe)\
**Post date:** [August 26, 2023, 10:57am UTC](https://forum.getkirby.com/t/page-pagination/29381/2 "2023-08-26T10:57:09Z")

</div>

> **[$pages-\>paginate()](https://getkirby.com/docs/reference/objects/cms/pages/paginate#examples__arguments-is-an-option-array)**
>
> Add pagination and return a sliced set of data.

`variable` is what you are looking for…

---

<div class="post-metadata">

**Author:** ![Dawidasam](https://avatars.discourse-cdn.com/v4/letter/d/439d5e/32.png) [@Dawidasam](https://forum.getkirby.com/u/Dawidasam)\
**Post date:** [August 26, 2023, 11:10am UTC](https://forum.getkirby.com/t/page-pagination/29381/3 "2023-08-26T11:10:11Z")

</div>

Thank you 🙂
