WordPress : Comment puis-je générer une pagination lorsque je parcours des pages plutôt que des publications ?
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; ?>
}
0 commentaire