Categories

  • Access & Security 95
  • Administration 171
  • Advertisement 92
  • Audio & Video 66
  • Author & Content 99
  • Comments 96
  • Communication 110
  • Communities & Forums 84
  • Development 47
  • E-Commerce 76
  • Email Management 53
  • Events & Calendars 80
  • Language 25
  • Map & Weather 44
  • Migration & Conversion 28
  • Miscellaneous 254
  • Mobile 15
  • Photos 143
  • Plugins 260
  • SEO & Site Speed 118
  • Social 186
  • Theme Enhancement 169



  • Add this plugin to a List

    You need to be logged in to add this plugin to your list.

    WP-PageNavi

    Add to List

    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

    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.

    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;
    }
    
    Rate This Plugin

    Please Login to Rate this Plugin!

    Function

    Feature

    Support

    0 Votes
    Not Rated Yet

    Plugin Developed by

    Lester 'GaMerZ' Chan & scribu

    Wordpress.org Stats

    Ratings4.7
    Votes149
    Downloads13,755,418
    Last Updated28 Days ago
    Published21 years ago

    Report Wrong Category!