WordPress : Pagination : conserver le lien précédent et suivant même sur la première/dernière page

Publié par Jean-Michel le

Sur mon index.phpj’utilise des « liens de pagination ». Je veux faire une pagination où vous avez un bouton pour le précédent, puis les numéros de page, puis un bouton pour le suivant, comme :

< PREVIOUS  1  2  3  4  [5]  6  7  8  9  NEXT >

Lorsque l’utilisateur est sur la première page, le bouton « précédent » doit être incliquable et doit avoir une couleur de fond différente de la normale.

Le problème ici est que, lorsque je suis sur la première page, tout le bouton « précédent » disparaît (idem sur la page suivante), ce qui m’empêche de regarder s’il a une classe différente pour que je puisse lui donner un style différent…

Donc ce que je me demande c’est :

  1. Comment faire apparaître les boutons Précédent et Suivant sur toutes les pages (même sur la première et la dernière page) ?
  2. S’ils apparaissent, comment supprimer le lien du bouton précédent lorsque je suis sur la première page (et du bouton suivant sur la dernière page bien sûr)

Mon code de pagination est :

<?php echo paginate_links( array(
    'base' => str_replace( 999, '%#%', get_pagenum_link( 999 ) ),
    'format' => '?paged=%#%',
    'current' => max( 1, get_query_var('paged') ),
    'total' => $wp_query->max_num_pages,
    'prev_text'    => __('<div class="newspage previous">vorige</div>'),
    'next_text'    => __('<div class="newspage next">volgende</div>')
) );
?>

Solution n°1 trouvée

Ma suggestion est de créer une fonction personnalisée, basée sur le code source de paginate_links(). Plus précisément, vous devez modifier les vérifications conditionnelles suivantes afin qu’elles ignorent la position actuelle et affichent toujours le lien :

if ( $prev_next && $current && 1 < $current )pour le lien « Précédent » et

if ( $prev_next && $current && ( $current < $total || -1 == $total ) )pour le lien « Suivant ».

Vous pouvez le placer dans le fichier de votre thème functions.phpou dans un plugin et l’appeler comme vous le feriez paginate_links()(mêmes paramètres). Assurez-vous simplement de nommer la nouvelle fonction différemment ou vous obtiendrez une erreur PHP « impossible de redéclarer la fonction ».

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 *