WordPress : Comment puis-je générer une pagination lorsque je parcours des pages plutôt que des publications ?

Publié par Jean-Michel le

Essentiellement, ce dont j’ai besoin est de générer l’équivalent de, s’il s’agissait d’une mise en page de blog, le lien nav-below nav-previous qui est par défaut dans le thème 2012… qui, je crois, utilise la fonction :
next_posts_link();

J’ai en quelque sorte besoin d’un next_PAGES_link(); ou quelque chose. c’est une mise en page « onepage ». Je ne suis pas responsable, je dois juste trouver comment y arriver et je suis à court d’idées.

S’il n’y a pas de fonction qui regroupe les pages et les renvoie comme une seule page, je dois en créer une et je ne suis pas un expert en php… quelque chose comme :

>>grab list of pages from database,
>>group pages into array pageGroup- each group of pages in pageGroup contains (x) number of pages
>>return each pageGroup item as a WordPress page.
>>generate link to new the next pageGroup WordPress page at the bottom of every pageGroup page.

Solution n°1 trouvée

Lisez un tas sur https://codex.wordpress.org/Pagination

Le thème Bones de Themble possède une base de code entièrement personnalisée pour sa propre fonction de pagination. C’est génial et facile à utiliser. J’étudierais cela aussi dans le thème Bones ->library-bones.php. Voici une manipulation rapide que j’ai trouvée à partir du codex qui n’a pas été testée mais qui est correcte dans sa logique :

$args  = array(
    'paged' => paged,
    'posts_per_page'  => 5, //-1 shows all
    'post_type'       => 'page',
    'suppress_filters' => true
);

$posts = new WP_Query( $args );

if ( $posts -> have_posts()) {

<!-- Add the pagination functions here. -->

    while ( $posts -> have_posts() ) : $posts->the_post();  {

    //do stuff with the posts returned here
    }

    <?php endwhile; ?>
    <!-- End of the main loop -->
    <!-- Add the pagination functions here. -->

    <div class="nav-previous alignleft"><?php next_posts_link( 'Older posts' ); ?></div>
    <div class="nav-next alignright"><?php previous_posts_link( 'Newer posts' ); ?></div>

    <?php else : ?>
    <p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>
}

Solution n°2 trouvée

Lisez un tas sur https://codex.wordpress.org/Pagination

Le thème Bones de Themble possède une base de code entièrement personnalisée pour sa propre fonction de pagination. C’est génial et facile à utiliser. J’étudierais cela aussi dans le thème Bones ->library-bones.php. Voici une manipulation rapide que j’ai trouvée à partir du codex qui n’a pas été testée mais qui est correcte dans sa logique :

$args  = array(
    'paged' => paged,
    'posts_per_page'  => 5, //-1 shows all
    'post_type'       => 'page',
    'suppress_filters' => true
);

$posts = new WP_Query( $args );

if ( $posts -> have_posts()) {

<!-- Add the pagination functions here. -->

    while ( $posts -> have_posts() ) : $posts->the_post();  {

    //do stuff with the posts returned here
    }

    <?php endwhile; ?>
    <!-- End of the main loop -->
    <!-- Add the pagination functions here. -->

    <div class="nav-previous alignleft"><?php next_posts_link( 'Older posts' ); ?></div>
    <div class="nav-next alignright"><?php previous_posts_link( 'Newer posts' ); ?></div>

    <?php else : ?>
    <p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>
}

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *