Bonjour à tous, depuis plusieurs jours je m'arrache les cheveux à savoir comment intégrer un système de pagination sur ma page de listing des Custom Post Type. J'ai essayé avec la méthode Plugin WP-PageNavi mais rien ne s'affiche. J'ai essayé avec des bouts de codes trouvés sur le net mais rien ne s'affiche non plus donc je voulais savoir si quelqu'un a déjà été confronté à ce soucis ?

4 réponses


elscorto
Réponse acceptée

Salut,

Voilà le code que j'utilise pour la pagination y compris pour des cpt

//Fonction pagination
//Source : http://www.creativejuiz.fr/blog/tutoriels/une-pagination-wordpress-personnalisee-sans-plugin
function pagination($query) {
    $baseURL="http://".$_SERVER'HTTP_HOST'];
        if($_SERVER'REQUEST_URI'] != "/")
        $baseURL = $baseURL.$_SERVER'REQUEST_URI'];

        // Suppression de '/page' de l'URL
        $sep = strrpos($baseURL, '/page/');
        if($sep != FALSE)
        $baseURL = substr($baseURL, 0, $sep);

    // Suppression des paramètres de l'URL
        $sep = strrpos($baseURL, '?');
        if($sep != FALSE){
            // On supprime le caractère avant qui est un '/'
            $baseURL = substr($baseURL, 0, ($sep-1));
        }
        $page = $query->query_vars"paged"];
        if ( !$page ) $page = 1;
            $qs = $_SERVER"QUERY_STRING"] ? "?".$_SERVER"QUERY_STRING"] : "";
        // Nécessaire uniquement si on a plus de posts que de posts par page admis
        if ( $query->found_posts > $query->query_vars"posts_per_page"] ) {
            echo '<nav class="list-pagination">';
            echo '<ul class="pagination">';
            // lien précédent si besoin
            if ( $page > 1 ) {
                echo '<li class="next_prev prev"><a title="Revenir à la page précédente (vous êtes à la page '.$page.')" href="'.$baseURL.'/page/'.($page-1).'/'.$qs.'">« précédente</a></li>';
            }
            // la boucle pour les pages
            for ( $i=1; $i <= $query->max_num_pages; $i++ ) {
                // ajout de la classe active pour la page en cours de visualisation
                if ( $i == $page ) 
                        echo '<li class="active"><a href="#pagination" title="Vous êtes sur cette page '.$i.'">'.$i.'</a></li>';
                else 
                        echo '<li><a title="Rejoindre la page '.$i.'" href="'.$baseURL.'/page/'.$i.'/'.$qs.'">'.$i.'</a></li>';
            }
            // le lien next si besoin
            if ( $page < $query->max_num_pages ) 
                echo '<li class="next_prev next"><a title="Passer à la page suivante (vous êtes à la page '.$page.')" href="'.$baseURL.'/page/'.($page+1).'/'.$qs.'">suivante »</a></li>';
            echo '</ul>';
            echo '</nav>';
        }
}

Il suffit juste ensuite que tu l'appelles dans ton fic

//si ta boucle est principale
echo pagination($wp_query)
//sinon 
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$my_query = new WP_Query(array(
    'post_type'=>'ton_cpt',
    'paged'=>$paged,
    'posts_per_page'=>'12'
))
echo pagination($my_query)
Shadows
Auteur

Super ça semble fonctionner ;)

ok cool

Shadows
Auteur

En plus il semblerait que tu aies construit la pagination avec le bootstrap de Twitter x)