• Stars
    star
    133
  • Rank 272,600 (Top 6 %)
  • Language
    PHP
  • Created almost 14 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Adds a more advanced paging navigation interface to your WordPress blog.

WP-PageNavi

Contributors: GamerZ, scribu
Donate link: https://lesterchan.net/site/donation/
Tags: navigation, pagination, paging, pages
Requires at least: 3.2
Tested up to: 6.2
Stable tag: 2.94.1
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

Adds a more advanced paging navigation interface.

Description

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.

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

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

Alternatively, you can uncheck the "Use pagenavi.css?" option from the settings page and add the styles to your theme's style.css file directly.

Changing Class Names

There are filters that can be used to change the default class names that are assigned to page navigation elements.

Filters

  • 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

Filter Usage

// 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;
}

Development

Credits

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.

Screenshots

  1. With Custom Styling
  2. Admin - Options Page

Frequently Asked Questions

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

var_dump(PHP_VERSION);

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() ) ); ?>

Changelog

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

  • FIXED: Update SCB Framework To Support PHP 8

2.93.3

  • FIXED: Update SCB Framework To Remove contextual_help

2.93.2

  • NEW: Bumped to WordPress 5.4
  • FIXED: Ensure Action Links is always an array

2.93.1

  • FIXED: Duplicated Settings Saved admin_notices

2.93

  • Remove screen_icon from SCB.

2.92

  • Add title attr to pages link. Props @Mahjouba91.

2.91

  • Validate text option against kses
  • Update SCB Framework

2.90

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

2.89.1

  • FIXED: before and after args

2.89

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

2.88

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

2.87

  • NEW: Uses WordPress native uninstall.php

2.86

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

2.85

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

2.84

  • FIXED: Updated scb framework to fix scbAdminPage incompatible error

2.83

  • added 'echo' parameter
  • added Estonian and Bengali translations
  • updated scbFramework

2.82

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

2.81

  • require an explicit type; fixes bugs with multipart pages

2.80

  • 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

More Repositories

1

wp-sweep

WP-Sweep allows you to clean up unused, orphaned and duplicated data in your WordPress. It also optimizes your database tables.
PHP
153
star
2

wp-postratings

Adds an AJAX rating system for your WordPress blog's post/page.
PHP
123
star
3

telegram-bot

Telegram Bot using AWS API Gateway and AWS Lambda
JavaScript
123
star
4

wp-postviews

Enables you to display how many times a post/page had been viewed.
PHP
114
star
5

wp-polls

Adds an AJAX poll system to your WordPress blog. You can also easily add a poll into your WordPress's blog post/page.
PHP
93
star
6

wp-dbmanager

Allows you to optimize database, repair database, backup database, restore database, delete backup database , drop/empty tables and run selected queries. Supports automatic scheduling of backing up, optimizing and repairing of database.
PHP
71
star
7

slack-bot

Slack Bot using AWS API Gateway and AWS Lambda
JavaScript
56
star
8

wp-useronline

Enable you to display how many users are online on your WordPress blog with detailed statistics.
PHP
36
star
9

linkedin-pdf-resume-parser

Parse LinkedIn PDF Resume and extract out name, email, education and work experiences.
PHP
27
star
10

wp-showhide

Allows you to embed content within your blog post via WordPress ShortCode API and toggling the visibility of the cotent via a link.
PHP
24
star
11

rendeer

Puppeteer x Prerender
JavaScript
24
star
12

gamerz-file-explorer

Enables you to browse and search for folders/files on the web just like Windows Explorer.
PHP
23
star
13

wp-ban

Ban users by IP, IP Range, host name, user agent and referrer url from visiting your WordPress's blog.
PHP
22
star
14

wp-print

Displays a printable version of your WordPress blog's post/page.
PHP
21
star
15

wp-serverinfo

Display your host's PHP, MYSQL & memcached (if installed) information on your WordPress dashboard.
PHP
17
star
16

wp-downloadmanager

Adds a simple download manager to your WordPress blog.
PHP
17
star
17

wp-email

Allows people to recommend/send your WordPress blog's post/page to a friend.
PHP
14
star
18

wp-instantarticles

WP-InstantArticles generates a RSS feed of your WordPress posts as Instant Articles for Facebook to consume.
PHP
10
star
19

wp-draftsforfriends

Now you don't need to add friends as users to the blog in order to let them preview your drafts
PHP
10
star
20

products-stock-checker

Just a personal project to check products price and stock availability on Razer Online Stores and Lazada.
JavaScript
9
star
21

wp-relativedate

Displays relative date alongside with your post/comments actual date. Like 'Today', 'Yesterday', '2 Days Ago', '2 Weeks Ago', '2 'Seconds Ago', '2 Minutes Ago', '2 Hours Ago'.
PHP
6
star
22

wp-stats

Display your WordPress blog statistics. Ranging from general total statistics, some of my plugins statistics and top 10 statistics.
PHP
5
star
23

wp-commentnavi

Adds a more advanced paging navigation for your comments to your WordPress 2.8 and above blog.
PHP
4
star
24

wp-sticky

[DEPRECATED] Adds a sticky post feature to your WordPress's blog.
PHP
3
star
25

wp-pluginsused

Display WordPress plugins that you currently have (both active and inactive) onto a post/page.
PHP
3
star
26

paw-base64urlencode

A Paw Extension that allows you to generate a websafe url from a base64 encoding. Used mainly for GrabPay API.
JavaScript
2
star
27

lesterchan

Lester Chan's GitHub Profile
2
star
28

smartthings

Lester Chan's SmartThings Apps & Custom Device Handlers
Groovy
2
star
29

paw-rsa

A Paw Extension that allows you to encrypt/decrypt using RSA Public/Private Key.
JavaScript
2
star
30

gp-php-sdk-sample

GP PHP SDK Sample
PHP
1
star
31

paw-popsignature

A Paw Extension that allows you to generate a X-GID-AUX-POP HMAC signature. Used mainly for GrabPay API.
JavaScript
1
star
32

wp-wap

[DEPRECATED] Browse your WordPress's blog entries on a WAP enabled mobile phone.
PHP
1
star
33

wp-migme

Share a post to migme's Miniblog whenever you publish a post in WordPress.
PHP
1
star
34

freemyinternet

Automatically places the FreeMyInternet banner from FreeMyInternet.com on your WordPress website. The blogging community will be organising a protest and online black out on Thursday 6th June 2013, 0001 to 6th June 2013, 2359 against the new licensing by the Media Development Authority of Singapore.
PHP
1
star