Title: WP-PageNavi
Author: Lester Chan
Published: <strong>3 janvier 2006</strong>
Last modified: 28 août 2026

---

Recherche d’extensions

![](https://ps.w.org/wp-pagenavi/assets/banner-772x250.png?rev=3639530)

![](https://ps.w.org/wp-pagenavi/assets/icon.svg?rev=977997)

# WP-PageNavi

 Par [Lester Chan](https://profiles.wordpress.org/gamerz/)

[Télécharger](https://downloads.wordpress.org/plugin/wp-pagenavi.3.0.1.zip)

 * [Détails](https://fr.wordpress.org/plugins/wp-pagenavi/#description)
 * [Avis](https://fr.wordpress.org/plugins/wp-pagenavi/#reviews)
 *  [Installation](https://fr.wordpress.org/plugins/wp-pagenavi/#installation)
 * [Développement](https://fr.wordpress.org/plugins/wp-pagenavi/#developers)

 [Support](https://wordpress.org/support/plugin/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.

Much of the 2.x line was the work of [scribu](https://scribu.net), whose write-ups
on using it with secondary queries are still the ones the FAQ below points at. The
plugin icon is by [SimpleIcon](https://www.simpleicon.com) from [Flaticon](https://www.flaticon.com).

### 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.

### 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

If you need to configure the CSS style of WP-PageNavi, you can copy the `css/wp-
pagenavi.css` file from the plugin directory into your theme’s directory as `wp-
pagenavi.css` and make your modifications there. This way, you won’t lose your changes
when you update the plugin.

The stylesheet sets no font and no text colour, so it inherits both from your theme,
and its two border colours are CSS custom properties. A small change needs no copy
of the file at all:

    ```
    .wp-pagenavi {
        --wp-pagenavi-border-color: #d0d0d0;
        --wp-pagenavi-border-color-current: rebeccapurple;
    }
    ```

Alternatively, you can set « Use wp-pagenavi.css » to No on the settings page and
add the styles to your theme’s style.css file directly.

### Changer le noms des classes

There are [filters](https://developer.wordpress.org/plugins/hooks/filters/) that
can be used to change the default class names that are assigned to page navigation
elements.

#### 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;
    }
    ```

## Captures d’écrans

[⌊Settings -> WP-PageNavi, where every piece of the navigation text is set⌉⌊Settings-
> WP-PageNavi, where every piece of the navigation text is set⌉[

Settings -> WP-PageNavi, where every piece of the navigation text is set

[⌊The page links under the loop, on a front page forty-two pages long⌉⌊The page 
links under the loop, on a front page forty-two pages long⌉[

The page links under the loop, on a front page forty-two pages long

## Installation

 1. Install and activate the plugin.
 2. In your theme, replace the calls to `next_posts_link()` and `previous_posts_link()`
    with `wp_pagenavi()`. Usage below shows what that looks like in a stock theme.
 3. Go to `WP-Admin -> Settings -> PageNavi` to change the wording and the number of
    page links.

## FAQ

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

You’re using `query_posts()` wrong. See [The Right Way To use query_posts()](https://scribu.net/wordpress/wp-pagenavi/right-way-to-use-query_posts.html)

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

Yes; read [this tutorial](https://scribu.net/wordpress/wp-pagenavi/wpn-2-74.html)

### 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' => WP_PageNavi_Options::defaults() ) ); ?>
    ```

Before 3.0.0 this was written as `PageNavi_Core::$options->get_defaults()`. That
property was backed by the bundled SCB framework, which 3.0.0 removes, so the old
form no longer works and must be updated.

### Can I use an SVG arrow for the previous and next links?

Yes. The navigation text settings accept the inline SVG elements as well as everything`
wp_kses_post()` allows, so an icon typed into the settings screen survives the save.
That allow-list is the `wp_pagenavi_allowed_html` filter if you need to widen or
narrow it.

## Avis

![](https://secure.gravatar.com/avatar/47306efade0467efd5ba9965c61c483d26c67cec78557d994ce80ac8a6429522?
s=60&d=retro&r=g)

### 󠀁[Amazing](https://wordpress.org/support/topic/amazing-4101/)󠁿

 [assad19](https://profiles.wordpress.org/assad19/) 6 mars 2025

Amazing Plugin.Thanks 🙂

![](https://secure.gravatar.com/avatar/65b6a1a0a4357f614514b5e2dfbb55d3fecd3faa70039213c672fee1a615b7cf?
s=60&d=retro&r=g)

### 󠀁[Works like a charm](https://wordpress.org/support/topic/works-like-a-charm-2357/)󠁿

 [paulc123](https://profiles.wordpress.org/paulc123/) 16 octobre 2024

Installed this on all my sites for years.

![](https://secure.gravatar.com/avatar/61b24212c4c3dca853c6f6342d53df6506af7626107822916895d4425744dd0c?
s=60&d=retro&r=g)

### 󠀁[Perfect and very useful plugin](https://wordpress.org/support/topic/perfect-and-very-useful-plugin-3/)󠁿

 [SASCoLtd](https://profiles.wordpress.org/sascoltd/) 2 septembre 2023

This plugin is perfect and very useful to those who are use custom themes like mine.
Recommended

![](https://secure.gravatar.com/avatar/8a6ded65652fd81eb0510cb4c5710e4e43857d5151ee7b92c53b11284b15f0c6?
s=60&d=retro&r=g)

### 󠀁[Indispensável](https://wordpress.org/support/topic/indispensavel-20/)󠁿

 [amiltonsousa](https://profiles.wordpress.org/amiltonsousa/) 17 août 2023

Simples e totalmente funcional. Resolvendo o problema de paginação com extrema facilidade.
Parabéns aos devs.

![](https://secure.gravatar.com/avatar/0247bd140169f602f8232bbd847d687d618daf0bc6d91cdf7bb5823f15f124f1?
s=60&d=retro&r=g)

### 󠀁[Carefull with the slugs](https://wordpress.org/support/topic/carefull-with-the-slugs/)󠁿

 [jesusjeco](https://profiles.wordpress.org/jesusjeco/) 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.

![](https://secure.gravatar.com/avatar/50e5c6d494e8ad9f915ed5b20829a5426b8185aa7b9d2014b9c8087494fafc51?
s=60&d=retro&r=g)

### 󠀁[Required plugin for displaying post list](https://wordpress.org/support/topic/required-plugin-for-displaying-post-list/)󠁿

 [Senri Miura](https://profiles.wordpress.org/senribb/) 17 août 2022

A simple and excellent plugin. The display of the blog list becomes much smarter,
so it is very useful. Currently, I've been using in combination with "Styles For
WP Pagenavi Addon".

 [ Lire les 149 avis ](https://wordpress.org/support/plugin/wp-pagenavi/reviews/)

## Contributeurs/contributrices & développeurs/développeuses

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

Contributeurs

 *   [ Lester Chan ](https://profiles.wordpress.org/gamerz/)

“WP-PageNavi” a été traduit dans 53 locales. Remerciez [l’équipe de traduction](https://translate.wordpress.org/projects/wp-plugins/wp-pagenavi/contributors)
pour ses contributions.

[Traduisez « WP-PageNavi » dans votre langue.](https://translate.wordpress.org/projects/wp-plugins/wp-pagenavi)

### Le développement vous intéresse ?

[Parcourir le code](https://plugins.trac.wordpress.org/browser/wp-pagenavi/), consulter
le [SVN dépôt](https://plugins.svn.wordpress.org/wp-pagenavi/), ou s’inscrire au
[journal de développement](https://plugins.trac.wordpress.org/log/wp-pagenavi/) 
par [RSS](https://plugins.trac.wordpress.org/log/wp-pagenavi/?limit=100&mode=stop_on_copy&format=rss).

## Journal des modifications

### 3.0.1

 * CHANGED: The settings migration now runs early on every request instead of only
   when wp-admin is loaded, so a site whose dashboard is never opened still picks
   up its settings after an update
 * FIXED: Network-activating the plugin upgraded only the site the click happened
   on. Every other site on the network kept serving its front end with the default
   settings — its real, pre-3.0.0 settings sat unread until somebody opened that
   site’s wp-admin, which also means nothing was lost and any site that looked wrong
   has already healed itself. Activation now walks every site on the network

### 3.0.0

 * BREAKING: WP-PageNavi now requires WordPress 6.8 and PHP 8.2. A site running 
   anything older will not be offered the update
 * BREAKING: The settings are stored in `wp_pagenavi_options` instead of `pagenavi_options`.
   The old row is copied over and removed automatically
 * BREAKING: The settings screen has moved from `options-general.php?page=pagenavi`
   to `options-general.php?page=wp-pagenavi`
 * BREAKING: `pagenavi-css.css` is now `css/wp-pagenavi.css`, and a copy in your
   theme directory must be renamed to `wp-pagenavi.css` to keep overriding it
 * BREAKING: Every class is now prefixed. `PageNavi_Options`, `PageNavi_Call` and`
   PageNavi_Core` are `WP_PageNavi_Options`, `WP_PageNavi_Call` and `WP_PageNavi_Core`,
   and `PageNavi_Admin` is now `WP_PageNavi_Settings`
 * BREAKING: `PageNavi_Core::$options` has been removed. Use `WP_PageNavi_Options::
   defaults()` and `WP_PageNavi_Options::get()` instead. See the FAQ
 * BREAKING: `PageNavi_Options_Page` has been removed and replaced by `WP_PageNavi_Settings`
 * BREAKING: Dropping the SCB Framework also removes the global functions and `scb*`
   classes it defined, since they were loaded into WordPress by whichever plugin
   bundled it. If your theme or another plugin called `html()`, `html_link()`, `
   set_post_field()`, `scb_init()`, `scb_register_table()`, `scb_install_table()`,`
   scb_uninstall_table()`, `scb_admin_notice()`, `scb_get_query_flags()`, `scb_list_fold()`
   or `scb_list_group_by()`, it must now provide them itself. Note that another 
   installed plugin may still be supplying them, so the breakage will only appear
   once nothing else on the site bundles SCB
 * NEW: Removed the bundled WP SCB Framework. The plugin now runs entirely on WordPress
   core APIs and has no dependencies
 * NEW: The settings page is built with the WordPress Settings API
 * NEW: Restructured into `includes/` following the Plugin Handbook layout
 * NEW: A `wp_pagenavi_capability` filter over the capability the settings screen
   requires
 * NEW: A `wp_pagenavi_version` row holding the plugin and schema version markers,
   so a future upgrade has something to compare against
 * CHANGED: The stylesheet’s two colours are CSS custom properties with fallbacks
   rather than hardcoded hexes, and it now carries a dark colour scheme
 * CHANGED: The stylesheet uses no physical CSS properties, so one file serves left-
   to-right and right-to-left sites alike
 * FIXED: An inline SVG arrow no longer deletes the entire previous/next link. `
   wp_kses_post()` removes an SVG rather than cleaning it, which left the link text
   empty, and a link with empty text is dropped altogether. The navigation text 
   is now filtered against `wp_kses_post()`‘s list plus the inline SVG elements,
   exposed as the `wp_pagenavi_allowed_html` filter. Reported by Cal at toolshed(#
   73)
 * FIXED: Multisite uninstall no longer stops at the hundredth site, so a large 
   network has its options removed everywhere. Reported by Cal at toolshed (#73)
 * FIXED: The navigation aria-labels now match the strings WordPress core defines,
   so they are translated in every locale core supports. Reported by Cal at toolshed(#
   73)
 * FIXED: An array submitted where a text setting belongs no longer raises a PHP
   8 notice, and option keys the plugin does not define are no longer stored. Reported
   by Cal at toolshed (#73)
 * FIXED: Page links are escaped with `esc_url()` instead of `esc_attr()`
 * FIXED: Page numbers derived from a `WP_User_Query` are cast to integers, so the
   current page is marked correctly
 * FIXED: The stylesheet version now tracks the plugin version instead of being 
   pinned to 2.70
 * FIXED: The label on each Yes/No setting pointed at an element that did not exist,
   so clicking it did nothing
 * NOTE: No hook and no template tag is renamed. The ten `wp_pagenavi_class_*` filters,
   the `wp_pagenavi` filter, `wp_pagenavi()` and `wp_pagenavi_dropdown()` all keep
   the names they shipped with

## Méta

 *  Version **3.0.1**
 *  Dernière mise à jour **il y a 2 mois**
 *  Installations actives **400 000+**
 *  Version de WordPress ** 6.8 ou plus **
 *  Testé jusqu’à **7.1.3**
 *  Version de PHP ** 8.2 ou plus **
 *  Langues
 * [Albanian](https://sq.wordpress.org/plugins/wp-pagenavi/), [Arabic](https://ar.wordpress.org/plugins/wp-pagenavi/),
   [Bulgarian](https://bg.wordpress.org/plugins/wp-pagenavi/), [Catalan](https://ca.wordpress.org/plugins/wp-pagenavi/),
   [Chinese (China)](https://cn.wordpress.org/plugins/wp-pagenavi/), [Chinese (Hong Kong)](https://zh-hk.wordpress.org/plugins/wp-pagenavi/),
   [Chinese (Taiwan)](https://tw.wordpress.org/plugins/wp-pagenavi/), [Croatian](https://hr.wordpress.org/plugins/wp-pagenavi/),
   [Czech](https://cs.wordpress.org/plugins/wp-pagenavi/), [Danish](https://da.wordpress.org/plugins/wp-pagenavi/),
   [Dutch](https://nl.wordpress.org/plugins/wp-pagenavi/), [Dutch (Belgium)](https://nl-be.wordpress.org/plugins/wp-pagenavi/),
   [English (Australia)](https://en-au.wordpress.org/plugins/wp-pagenavi/), [English (Canada)](https://en-ca.wordpress.org/plugins/wp-pagenavi/),
   [English (New Zealand)](https://en-nz.wordpress.org/plugins/wp-pagenavi/), [English (South Africa)](https://en-za.wordpress.org/plugins/wp-pagenavi/),
   [English (UK)](https://en-gb.wordpress.org/plugins/wp-pagenavi/), [English (US)](https://wordpress.org/plugins/wp-pagenavi/),
   [Estonian](https://et.wordpress.org/plugins/wp-pagenavi/), [Finnish](https://fi.wordpress.org/plugins/wp-pagenavi/),
   [French (Canada)](https://fr-ca.wordpress.org/plugins/wp-pagenavi/), [French (France)](https://fr.wordpress.org/plugins/wp-pagenavi/),
   [Galician](https://gl.wordpress.org/plugins/wp-pagenavi/), [German](https://de.wordpress.org/plugins/wp-pagenavi/),
   [Greek](https://el.wordpress.org/plugins/wp-pagenavi/), [Hebrew](https://he.wordpress.org/plugins/wp-pagenavi/),
   [Hindi](https://hi.wordpress.org/plugins/wp-pagenavi/), [Hungarian](https://hu.wordpress.org/plugins/wp-pagenavi/),
   [Icelandic](https://is.wordpress.org/plugins/wp-pagenavi/), [Indonesian](https://id.wordpress.org/plugins/wp-pagenavi/),
   [Italian](https://it.wordpress.org/plugins/wp-pagenavi/), [Japanese](https://ja.wordpress.org/plugins/wp-pagenavi/),
   [Khmer](https://km.wordpress.org/plugins/wp-pagenavi/), [Korean](https://ko.wordpress.org/plugins/wp-pagenavi/),
   [Latvian](https://lv.wordpress.org/plugins/wp-pagenavi/), [Lithuanian](https://lt.wordpress.org/plugins/wp-pagenavi/),
   [Norwegian (Bokmål)](https://nb.wordpress.org/plugins/wp-pagenavi/), [Persian](https://fa.wordpress.org/plugins/wp-pagenavi/),
   [Polish](https://pl.wordpress.org/plugins/wp-pagenavi/), [Portuguese (Angola)](https://pt-ao.wordpress.org/plugins/wp-pagenavi/),
   [Portuguese (Brazil)](https://br.wordpress.org/plugins/wp-pagenavi/), [Portuguese (Portugal)](https://pt.wordpress.org/plugins/wp-pagenavi/),
   [Romanian](https://ro.wordpress.org/plugins/wp-pagenavi/), [Russian](https://ru.wordpress.org/plugins/wp-pagenavi/),
   [Serbian](https://sr.wordpress.org/plugins/wp-pagenavi/), [Slovak](https://sk.wordpress.org/plugins/wp-pagenavi/),
   [Spanish (Chile)](https://cl.wordpress.org/plugins/wp-pagenavi/), [Spanish (Mexico)](https://es-mx.wordpress.org/plugins/wp-pagenavi/),
   [Spanish (Spain)](https://es.wordpress.org/plugins/wp-pagenavi/), [Spanish (Venezuela)](https://ve.wordpress.org/plugins/wp-pagenavi/),
   [Swedish](https://sv.wordpress.org/plugins/wp-pagenavi/), [Turkish](https://tr.wordpress.org/plugins/wp-pagenavi/),
   [Ukrainian](https://uk.wordpress.org/plugins/wp-pagenavi/), et [Vietnamese](https://vi.wordpress.org/plugins/wp-pagenavi/).
 *  [Traduisez la dans votre langue](https://translate.wordpress.org/projects/wp-plugins/wp-pagenavi)
 * Étiquettes
 * [navigation](https://fr.wordpress.org/plugins/tags/navigation/)[page links](https://fr.wordpress.org/plugins/tags/page-links/)
   [pages](https://fr.wordpress.org/plugins/tags/pages/)[pagination](https://fr.wordpress.org/plugins/tags/pagination/)
   [paging](https://fr.wordpress.org/plugins/tags/paging/)
 *  [Vue avancée](https://fr.wordpress.org/plugins/wp-pagenavi/advanced/)

## Évaluations

 4.7 sur 5 étoiles.

 *  [  127 avis à 5 étoiles     ](https://wordpress.org/support/plugin/wp-pagenavi/reviews/?filter=5)
 *  [  11 avis à 4 étoiles     ](https://wordpress.org/support/plugin/wp-pagenavi/reviews/?filter=4)
 *  [  2 avis à 3 étoiles     ](https://wordpress.org/support/plugin/wp-pagenavi/reviews/?filter=3)
 *  [  0 avis à 2 étoile     ](https://wordpress.org/support/plugin/wp-pagenavi/reviews/?filter=2)
 *  [  9 avis à 1 étoiles     ](https://wordpress.org/support/plugin/wp-pagenavi/reviews/?filter=1)

[Votre avis](https://wordpress.org/support/plugin/wp-pagenavi/reviews/#new-post)

[Tout voir](https://wordpress.org/support/plugin/wp-pagenavi/reviews/)

## Contributeurs

 *   [ Lester Chan ](https://profiles.wordpress.org/gamerz/)

## Support

Demandes résolues ces deux derniers mois :

     2 sur 2

 [Voir le forum de support](https://wordpress.org/support/plugin/wp-pagenavi/)

## Faire un don

Souhaitez-vous soutenir l’avancement de cette extension ?

 [ Faire un don à cette extension ](https://lesterchan.net/site/donation/)