WP-PageNavi

Description

Vous souhaitez remplacer les « vieux » liens ← Articles plus anciens | Articles plus récents → avec une pagination avancée ?

Cette extension fournit le marquer de modèle wp_pagenavi() qui permet de générer de jolis liens de pagination.

Utilisation

Dans votre thème, vous devez trouver next_posts_link() et previous_posts_link() puis les remplacer.

Dans le thème TwentyTen, cela ressemble à ça :

<div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">&larr;</span> Older posts', 'twentyten' ) ); ?></div>
<div class="nav-next"><?php previous_posts_link( __( 'Newer posts <span class="meta-nav">&rarr;</span>', 'twentyten' ) ); ?></div>

Vous devriez remplacer ces deux lignes par celle-ci :

<?php wp_pagenavi(); ?>

Pour les pages en plusieurs parties, vous devriez chercher un code comme celui-ci :

<?php wp_link_pages( ... ); ?>

pour le remplacer par ça :

<?php wp_pagenavi( array( 'type' => 'multipart' ) ); ?>

Allez à Tableau de bord -> Réglages -> PageNavi pour la configuration.

Changer le CSS

Si vous avez besoin de modifier le CSS de WP-PageNavi, vous pouvez copier le fichier pagenavi-css.css depuis le répertoire de l’extension vers celui de votre thème et y faire vos modifications. Cela vous évitera de perdre les modifications à la mise à jour de l’extension.

Alternativement, vous pouvez décocher l’option « Utiliser pagenavi-css.css » depuis la page des réglages et directement ajouter le style à votre fichier style.css.

Changer le noms des classes

Il y a des filtres qui peuvent être utilisés pour changer le nom des classes par défaut qui sont assignés aux éléments de navigation des pages.

Filtres

  • wp_pagenavi_class_pages
  • wp_pagenavi_class_first
  • wp_pagenavi_class_previouspostslink
  • wp_pagenavi_class_extend
  • wp_pagenavi_class_smaller
  • wp_pagenavi_class_page
  • wp_pagenavi_class_current
  • wp_pagenavi_class_larger
  • wp_pagenavi_class_nextpostslink
  • wp_pagenavi_class_last

Utilisation des filtres

// Simple Usage - 1 callback per filter
add_filter('wp_pagenavi_class_previouspostslink', 'theme_pagination_previouspostslink_class');
add_filter('wp_pagenavi_class_nextpostslink', 'theme_pagination_nextpostslink_class');
add_filter('wp_pagenavi_class_page', 'theme_pagination_page_class');

function theme_pagination_previouspostslink_class($class_name) {
  return 'pagination__control-link pagination__control-link--previous';
}

function theme_pagination_nextpostslink_class($class_name) {
  return 'pagination__control-link pagination__control-link--next';
}

function theme_pagination_page_class($class_name) {
  return 'pagination__current-page';
}


// More Concise Usage - 1 callback for all filters
add_filter('wp_pagenavi_class_previouspostslink', 'theme_pagination_class');
add_filter('wp_pagenavi_class_nextpostslink', 'theme_pagination_class');
add_filter('wp_pagenavi_class_page', 'theme_pagination_class');

function theme_pagination_class($class_name) {
  switch($class_name) {
    case 'previouspostslink':
      $class_name = 'pagination__control-link pagination__control-link--previous';
      break;
    case 'nextpostslink':
      $class_name = 'pagination__control-link pagination__control-link--next';
      break;
    case 'page':
      $class_name = 'pagination__current'
      break;
  }
  return $class_name;
}

Développement

Crédits

Dons

J’ai passé beaucoup de mon temps libre à la création, mise à jour et au support de cette extension. Si vous l’appréciez et pouviez me donner quelques dollars, ce serait appréciable. Si ce n’est pas le cas, n’hésitez pas à utiliser cette extension sans aucune obligation.

Captures d’écran

  • Avec du style personnalisé
  • Administration - Page des options

FAQ

Error on activation: « Parse error: syntax error, unexpected… »

Vérifiez que votre hébergeur utilise PHP5. La seule façon sécurisée de le faire est d’ajouter cette ligne au fichier wp-config.php (après la balise ouvrante <?php) :

var_dump(PHP_VERSION);

Quand je vais sur la page 2, je vois les mêmes articles que sur la page 1 !

Vous utilisez query_posts() de la mauvaise manière. Consultez « La bonne manière d’utiliser query_posts() » (en anglais).

Est-ce que PageNavi fonctionne avec les instances secondaires de WP_Query ?

Oui, lisez ce tutoriel (en anglais).

Comment ignorer la page d’options ?

Si vous utilisez une extension multilingue, vous voudrez probablement ignorer les chaînes dans la page des options.

Vous pouvez le faire de cette manière :

<?php wp_pagenavi( array( 'options' => PageNavi_Core::$options->get_defaults() ) ); ?>

Avis

17 août 2023
Simples e totalmente funcional. Resolvendo o problema de paginação com extrema facilidade. Parabéns aos devs.
22 novembre 2022
I am using this plugin + Divi. It works just fine, but there is a bug with the slugs of the pages and the post types. If you have, for example, a post type with the slug "speakers" and your page is also call "speakers", both slugs will be the same and this is causing the plugin to break. Most people on the internet are looking for this error as the page/2 error. Be sure the slugs does not match and it will work just fine.
24 juin 2022
Pure code and so simple to customize. The simplest plugin I ever installed. A couple of minutes to get it working. Couldn't be happier 🙂 I only added this snippet to replace my Woocommerce pagination: remove_action('woocommerce_pagination', 'woocommerce_pagination', 10); function woocommerce_pagination() { wp_pagenavi(); } add_action( 'woocommerce_pagination', 'woocommerce_pagination', 10);
9 mai 2022
Thanks for that plugins I use till long years to add a navigation bar box inside my blog including more than 2000 entries 😉
Lire les 146 avis

Contributeurs/contributrices & développeurs/développeuses

« WP-PageNavi » est un logiciel libre. Les personnes suivantes ont contribué à cette extension.

Contributeurs

“WP-PageNavi” a été traduit dans 53 locales. Remerciez l’équipe de traduction pour ses contributions.

Traduisez « WP-PageNavi » dans votre langue.

Le développement vous intéresse ?

Parcourir le code, consulter le SVN dépôt, ou s’inscrire au journal de développement par RSS.

Journal

2.94.1

  • FIXED: PHP 8.2 warnings

2.94.0

  • NEW: Add args param on wp_pagenavi filter. Props @asadowski10
  • NEW: Improve accessibility of nav links. Props @carlabobak

2.93.4

  • CORRIGÉ : Mise à jour de SCB Framework pour prendre en charge PHP 8

2.93.3

  • CORRIGÉ : Mise à jour de SCB Framework pour retirer contextual_help

2.93.2

  • NOUVEAU : Passage à WordPress 5.4
  • CORRIGÉ : Vérification que les liens d’actions sont bien un tableau

2.93.1

  • CORRIGÉ : Réglages dupliqués enregistrés admin_notices

2.93

  • Retrait de screen_icon de SCB.

2.92

  • Ajout de l’attribut de titre aux liens de pages. Merci à @Mahjouba91.

2.91

  • Validation des options textuelles avec kses
  • Mise à jour du framework SCB

2.90

  • Retrait des fichiers po/mo de l’extension
  • Utilisation de translate.wordpress.org pour traduire l’extension

2.89.1

  • Résolu : argument avant et après

2.89

  • Nouveauté : l’option wrapper_tag permet d’utiliser d’autres balises HTML et classes CSS au delà de DIV et .wp-pagenavi. Merci à @Mahjouba91.

2.88

  • Nouveauté : Filtres ajoutés pour changer le nom des classes. Merci à @bookwyrm.

2.87

  • Nouveauté : Utilisation de uninstall.php natif à WordPress.

2.86

  • Nouveauté : Passage à la version 4.0.
  • Nouveauté : Ajout de rel=next et rel=previous.

2.85

  • Résolu : « Utiliser pagenavi-css.css » & « Toujours afficher la navigation WP-PageNavi » n’étaient pas enregistrés dans les options.

2.84

  • Résolu : Le framework scb a été mis à jour pour corriger les erreurs de compatibilité avec scbAdminPage.

2.83

  • Paramètre « echo » ajouté.
  • Ajout des traductions en Estonien et en Bengali.
  • Mise à jour de scbFramework

2.82

  • Résolution des cas où les liens prev/next n’apparaissaient pas.
  • Ajout de traductions en Hébreu, en Géorgien et en Azéri.
  • Mise à jour de scbFramework

2.81

  • Un fichier explicite est requis ; des bugs sont corrigés avec les pages en plusieurs parties.

2.80

  • Compatibilité avec les pages en plusieurs parties et les requêtes utilisateurs.
  • Déplacement des liens prev/next avant et après les premiers/derniers liens.
  • Plus d’informations.

2.74 (2011-02-17)

  • Classes « smaller » et « larger » ajoutées.
  • Ajout de l’argument $query à wp_pagenavi().
  • Mise à jour des traductions
  • Plus d’informations