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. See the installation instructions for using it in your theme.

Help to translate at WordPress Translate.

Build Status




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.


  • With Custom Styling
  • Admin - Options Page


Error on activation: “Parse error: syntax error, unexpected…”

Make sure your host is running PHP 5. The only foolproof way to do this is to add this line to wp-config.php (after the opening <?php tag):


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' => PageNavi_Core::$options->get_defaults() ) ); ?>


nice one

configurable, possibility to disable css, show & hide fields.. just nice =)

Read all 134 reviews

Contributors & Developers

“WP-PageNavi” is open source software. The following people have contributed to this plugin.




  • Validate text option against kses
  • Update SCB Framework


  • Remove po/mo files from the plugin
  • Use translate.wordpress.org to translate the plugin


  • FIXED: before and after args


  • NEW: wrapper_tag option to allow other HTML tag besides DIV and wrapper_class option to allow other class name besides wp-pagenavi. Props @Mahjouba91.


  • NEW: Added filters for altering class names. Props @bookwyrm


  • NEW: Uses WordPress native uninstall.php


  • NEW: Bump to 4.0
  • NEW: Added rel=next and rel=previous


  • FIXED: “Use pagenavi-css.css” & “Always Show Page Navigation” in the options are not being saved


  • FIXED: Updated scb framework to fix scbAdminPage incompatible error


  • added ‘echo’ parameter
  • added Estonian and Bengali translations
  • updated scbFramework


  • fixed prev/next links not appearing in some conditions
  • added Hebrew, Georgian, and Azerbaijani translations
  • updated scbFramework


  • require an explicit type; fixes bugs with multipart pages


  • support for multi-part pages and user queries
  • moved prev/next links before/after first/last links
  • more info

2.74 (2011-02-17)

  • added ‘smaller’ and ‘larger’ classes
  • added $query arg to wp_pagenavi()
  • updated translations
  • more info

2.73 (2010-08-17)

  • added $options arg to wp_pagenavi()
  • updated scbFramework
  • 3 new translations: AL, JA, BR

2.72 (2010-04-19)

  • fixed first link

2.71 (2010-04-18)

  • remove conflicting .left and .right from .extend elements
  • bundle language files

2.70 (2010-04-11)

  • better default CSS
  • fixed issue with slashed quotes in settings
  • let WordPress handle uninstallation
  • more info

2.61 (2010-02-07)

  • fixed: memory limit error

2.60 (2010-02-07)

  • new: Compatible With WordPress 2.9
  • new: Added “previouspostslink” and “nextpostslink” CSS classes for styling next/previous posts link by Joost de Valk
  • new: Added option to include pagenavi-css.css In WP-Admin -> Settings -> PageNavi
  • fixed: check for pagenavi-css.css in the child theme, first
  • fixed: cleaner options page

2.50 (2009-06-01)

  • new: Compatible With WordPress 2.8
  • new: Added Larger Page Number Pagination
  • new: Added “first”, “page” and “last” CSS Name To Link
  • fixed: Removed “ ” Entity
  • fixed: Uses $_SERVER[‘PHP_SELF’] With plugin_basename(FILE) Instead Of Just $_SERVER[‘REQUEST_URI’]

2.40 (2008-12-12)

  • new: Compatible With WordPress 2.7 Only
  • new: Right To Left Language Support by Kambiz R. Khojasteh
  • new: Called pagenavi_textdomain() In pagenavi_init() by Kambiz R. Khojasteh

2.31 (2008-07-16)

  • new: Compatible With WordPress 2.6

2.30 (2008-06-01)

  • new: WP-PageNavi Will Load ‘pagenavi-css.css’ Inside Your Theme Directory If It Exists. If Not, It Will Just Load The Default ‘pagenavi-css.css’ By WP-PageNavi
  • new: Uses /wp-pagenavi/ Folder Instead Of /pagenavi/
  • new: Uses wp-pagenavi.php Instead Of pagenavi.php
  • new: Added “wp-pagenavi a:visited” Style In pagenavi-css.css
  • new: Added $before And $after Function Arguments To wp_pagenavi();
  • fixed: Rearranged CSS Classes In pagenavi-css.css
  • fixed: “First” Text Does Not Always Appear If Page 1 Is Not Shown

2.20 (2007-10-01)

  • new: Supports query_posts(); Variables
  • new: Ability To Uninstall WP-PageNavi

2.11 (2007-06-01)

  • new: Page Navigation Now Is Customisable Via ‘WP-Admin -> Options -> PageNavi’ And pagenavi-css.css
  • new: Default Style Navigation Is Now Boxed Navigation (Similar To Digg.com)
  • fixed: Fix For Ultimate Tag Warrior By Oliver Kastler & Stephan (Netconcepts)

2.10 (2007-02-01)

  • new: Compatible With WordPress 2.1 Only
  • new: Move pagenavi.php To pagenavi Folder

2.03 (2006-10-01)

  • fixed: Now Compatible With WordPress 2.1

2.02 (2006-06-01)

  • new: Added Drop Down Menu Style Of Page Navigation

2.01 (2006-03-01)

  • fixed: Paging Show If There Is Only 1 Page

2.00 (2006-01-01)

  • new: Compatible With WordPress 2.0
  • fixed: Space Issues