Nous avons vu comment lister les contenus à l'aide de la boucle WordPress sans forcément se préoccuper de la pagination. Il existe différentes méthodes qui permettent de créer une pagination mais la plus intéressante est la fonction paginate_links(). Cette fonction n'offre pas forcément une tonne d'option en terme de personnalisation et vous aurez surement besoin de créer une fonction personnalisée pour vous adapter à la structure de votre template.

function montheme_pagination()
{
    $pages = paginate_links(['type' => 'array']);
    if ($pages === null) {
        return;
    }
    echo '<nav aria-label="Pagination" class="my-4">';
    echo '<ul class="pagination">';
    foreach ($pages as $page) {
        $active = strpos($page, 'current') !== false;
        $class = 'page-item';
        if ($active) {
            $class .= ' active';
        }
        echo '<li class="' . $class . '">';
        echo str_replace('page-numbers', 'page-link', $page);
        echo '</li>';
    }
    echo '</ul>';
    echo '</nav>';
}