web-dev-qa-db-fra.com

Boucle - comment obtenir le précédent/prochain post pour le premier/dernier post?

J'ai une boucle simple pour un curseur JS, je souhaite afficher les titres des publications précédentes et suivantes sur ma diapositive, mais je ne parviens pas à lire le titre de la publication précédente sur la première diapositive (car apparemment, la première publication n'a aucune publication précédente):

$prev_post = $loop->posts[$loop->current_post - 1]; // ALWAYS NULL FOR FIRST POST :(
$next_post = $loop->posts[$loop->current_post + 1]; // ALWAYS NULL FOR THE LAST POST
echo $next_post->post_title;
echo $next_post->post_title; 

Y at-il un moyen facile de résoudre ce problème?

2
Wordpressor

Vous pouvez boucler les diapositives très simplement:

$prev_index = ( $loop->current_post == 0 ) ? count( $loop->posts ) - 1 : $loop->current_post - 1;
$next_index = ( $loop->current_post == count( $loop->posts ) - 1 ) ? 0 : $loop->current_post + 1;

$prev_post = $loop->posts[ $prev_index ];
$next_post = $loop->posts[ $next_index ];

echo $next_post->post_title;
echo $next_post->post_title;

Ceci prend la dernière publication de la publication précédente si la publication actuelle est la première publication, et la première publication de la publication suivante si la publication actuelle est la dernière publication.

3
engelen