Type to search.

#131 by installs

WP-PageNavi

by Lester ChanVersion 3.0.1

Adds a more advanced paging navigation interface.

Active installs
400,000+
#131 of 1,000
Downloads, all time
13.8M
13,831,251
Downloads, 30 days
65.6K
19.7K in the last 7
Rating
4.7 / 5
149 reviews
Last updated
2 months ago
Aug 28, 2026
Version
3.0.1
44 releases

Upkeep and compatibility

Last updatedAugust 28, 2026Updated in the last 3 months
Tested up toWordPress 7.1.4Covers WordPress 7.1.4, the current release
Needs WordPress6.8 or newer
Needs PHP8.2 or newer
First publishedJanuary 3, 2006
Support, last two months0 of 1 threads resolved (0%)

Reviews

4.7 / 5 from 149 reviews

Reviews by star rating
5 stars127
4 stars11
3 stars2
2 stars0
1 star9

Downloads, last 30 days

Low 515 a dayHigh 9.3K a day

What the author says it does

Want to replace the old ← Older posts | Newer posts → links with some page links?

This plugin provides the wp_pagenavi() template tag which generates fancy pagination links.

Much of the 2.x line was the work of scribu, whose write-ups on using it with secondary queries are still the ones the FAQ below points at. The plugin icon is by SimpleIcon from Flaticon.

Donations

I spent most of my free time creating, updating, maintaining and supporting these plugins, if you really love my plugins and could spare me a couple of bucks, I will really appreciate it. If not feel free to use it without any obligations.

Usage

In your theme, you need to find calls to next_posts_link() and previous_posts_link() and replace them.

In the Twentyten theme, it looks like this:

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

You would replace those two lines with this:

<?php wp_pagenavi(); ?>

For multipart pages, you would look for code like this:

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

and replace it with this:

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

Go to WP-Admin -> Settings -> PageNavi for configuration.

Changing the CSS

The opening of the plugin's own description. The full text, installation notes and changelog are on its WordPress.org page.

Questions the author answers

When I go to page 2, I see the same posts as on page 1!

You’re using query_posts() wrong. See The Right Way To use query_posts()

Does PageNavi work with secondary WP_Query instances?

Yes; read this tutorial

How do I ignore the options page?

If you are running a multi-language plugin, you will probably want to ignore the strings in the options page.

You can do that like so:

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

Latest changelog entry

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

Screenshots

From WordPress.org.

Tagged

Plugins that share its tags

#80 by installs

Breadcrumb NavXT

by John Havlik

Adds breadcrumb navigation showing the visitor's path to their current location.

Installs
800,000+
Rating
4.6 (132)
Updated
2 months ago

#166 by installs

Max Mega Menu

by megamenu

An easy to use mega menu plugin. Written the WordPress way.

Installs
300,000+
Rating
4.8 (882)
Updated
47 days ago

#358 by installs

Page scroll to id

by malihu

Create links that scroll the page smoothly to any id within the document.

Installs
100,000+
Rating
4.9 (225)
Updated
5 months ago

#407 by installs

Menu Image, Icons made easy

by Rui Guerreiro

Adds an image or icon in the menu items. You can choose the position of the image (after, before, above, below) or even hide the menu item title.

Installs
100,000+
Rating
4.5 (123)
Updated
15 months ago

#469 by installs

LuckyWP Table of Contents

by LuckyWP

Creates SEO-friendly table of contents for your posts/pages. Works automatically or manually (via shortcode, Gutenberg block or widget).

Installs
90,000+
Rating
4.9 (884)
Updated
19 months ago

#475 by installs

Nested Pages

by Hook & Filter

Nested Pages provides a drag and drop interface for managing pages & posts in the WordPress admin, while maintaining quick edit functionality.

Installs
90,000+
Rating
4.7 (126)
Updated
36 days ago

Where this page's numbers come from

Read from the WordPress.org plugin API on , when WordPress 7.1.4 was the current release. WordPress.org rounds active installs into buckets. These are the directory's figures, not my verdict, and I haven't tested this plugin. The author takes donations at their donate page.