avril 29, 2021 - Bloc 3

Derniers cours : avril 29, 2021

Les cours sont classés par ordre où ils ont été donnés, du plus récent au plus ancien.

WordPress pagination post suivant et précédent avec image mise en avant

WordPress pagination post suivant et précédent avec image mise en avant

Pour les besoins d’un site qui présente des portraits, je devais pouvoir passer au post précédent et suivant au moyen d’un lient contenant le titre du post mais aussi l’image en avant. Voici le script complet.

J’ai ajouté une condition pour ne pas afficher précédent sur le premier post ni suivant sur le dernier

				
					<?php
// https://njengah.com/wordpress-next-previous-post-with-thumbnail-pagination/
$prev = get_previous_post();
$next = get_next_post();
?>

<?php if(!empty($prev->ID)) {   ?>
<a href="<?php echo get_permalink( $prev->ID ); ?>">
<?php _e("Portrait pécédent", "thisishomemade"); ?><br>
<?php echo apply_filters( 'the_title', $prev->post_title ); ?>
<?php echo get_the_post_thumbnail($prev->ID, 'thumbnail'); ?>
</a>
<?php } ?>

<?php if(!empty($next->ID)){ ?>
<a href="<?php echo get_permalink( $next->ID ); ?>">
<?php _e("Portrait suivant", "thisishomemade"); ?><br>
<?php echo apply_filters( 'the_title', $next->post_title ); ?>
<?php echo get_the_post_thumbnail($next->ID, 'thumbnail'); ?>
</a>
<?php } ?>
				
			

Une boucle est néanmoins possible au moyen de ce script.

merci à https://gist.github.com/banago/5603826 !

				
					<?php 
/**
 *  Infinite next and previous post looping in WordPress
 */
if( get_adjacent_post(false, '', true) ) { 
	previous_post_link('%link', '&larr; Previous Post');
} else { 
    $first = new WP_Query('posts_per_page=1&order=DESC'); $first->the_post();
    	echo '<a href="' . get_permalink() . '">&larr; Previous Post</a>';
  	wp_reset_query();
}; 
    
if( get_adjacent_post(false, '', false) ) { 
	next_post_link('%link', 'Next Post &rarr;');
} else { 
	$last = new WP_Query('posts_per_page=1&order=ASC'); $last->the_post();
    	echo '<a href="' . get_permalink() . '">Next Post &rarr;</a>';
    wp_reset_query();
}; 

?>