AB Pagination


Bjorn Borresen

3rd Party (Commercial)

EE Version Support

  • ExpressionEngine 2


If an item is crossed out, it might be untested, not applicable or incompatible. Contact the developer to be sure.

  • Updater
  • Multi Site Manager
  • Stand Alone Entry Form
  • Low Variables
  • Content Elements
  • Better Workflow
  • Matrix
  • Grid
  • Webservice
  • Publisher


  • jQuery for the Control Panel

Add-On Type(s)



Editor's Pick
Each month the devot:ee staff picks an add-on that's especially well thought out, well built, and useful. They're add-ons that we love and think you will too!

AB Pagination was chosen in April 2013.

AB Pagination is ExpressionEngine Pagination on Steroids. The most powerful pagination addon to date?

AB Pagination adds a lot of flexibility and power to the default {exp:channel:entries} pagination functionality in ExpressionEngine.

Developer license is available here.

Some benefits over the standard EE pagination functionality:

  • Total freedom with regards to the markup you use
  • Lots of conditionals available (has_previous, has_next etc.)
  • The link to the first first page won’t be postfixed with /P0 .. linking to /P0 basically creates duplicate content in Google, which is bad for SEO

Some example code:

    {if abp_has_previous}
        <a class="next" href="{abp_previous_link}">&larr; prev</a>
        <span class="atStart">&larr; prev</span>

    {abp_pages padding="2" initial_size="5"}

        {if abp_is_current}
            <span class="this-page">{abp_num}</span>
            <a href="{abp_link}">{abp_num}</a>


    {if abp_has_next}
        <a class="next" href="{abp_next_link}">next &rarr;</a>
        <span class="atStart">next &rarr;</span>

    <div class="results">({abp_total_entries} uploads)</div>

Check out the documentation for more examples.


Changelog for AB Pagination
The dates in this changelog use international date format: YYYY-MM-DD (ISO8601)

1.6.7 - 2015-06-11
* Bugfix for paginate="custom" / {abp_pagination_html} for EE 2.10.0

1.6.6 - 2015-04-01
* Compatibility release for ExpressionEngine 2.9.3

UPDATING FROM pre 2.8 to newer version: If you're updating an existing site from pre 2.8 to 2.8+ please visit the extensions section in the backend to run the update script for AB Pagination (it should run in the backend when doing that, you won't get any response that it actually does but you will see the version number update to the latest version. If it still uses the old hook (this will throw a PHP error in 2.8 because of a bug in that version of EE) - try disabling / activating the extension again. 2.9+ has fixed this bug in EE.

1.6.5 - 2014-06-18
* Added support for {abp_previous_page_num_liber} and {abp_next_page_num_liber} (1-based prev/next page number)
* There's now only one version of AB Pagination that should work for "all" EE versions

1.6.4 - 2014-03-12
* 2.8.0 compatibility release

1.6.3 - 2013-12-19
* Added fix for {abp_pagination_html} where the tag would display sometimes when there were no entries

1.6.2 - 2013-07-08
* Added tags for PXX values: {abp_previous_p}, {abp_current_p} and {abp_next_p}. These also work inside the {abp_pages} loop (for each of the page respectively). AB Pagination previously had some tags for these but they were inconsitent (some referred to the current page, next page as in 1,2,3,4 etc. - these tags will always refer to the P value (which will change on the current limit you're using on the pagination). Also, the other tags have been fixed to always refer to the page numbers (iterating from 0 to X number of pages, incrementing by 1).

1.6.1 - 2013-04-30
* Added "Enable Query Strings" as an extesion setting in the AB Pagination control panel as EE from 2.6 will force the "enable_query_strings" value to FALSE (overriding any config setting set). If you make use of AB Pagination and query strings you need to navigate to the extension settings and set "Enable Query Strings" to Yes there. - 2013-02-18
* Fixed minor bug that affected users using query strings (ie. ?sort=desc)

1.5.9 - 2012-12-04
* Fixed bug that occurred when logged in and the "Session ID only" setting was enabled in the CP (Security settings) - the session id segment would be duplicated on subsequent pages

1.5.8 - 2012-04-17
* EE 2.5 update (fallback to pager->sql if no count is provided)

1.5.7 - 2012-04-03
* Bugfix with {exp:comment:entries} pagination producing PHP error

1.5.6 - 2012-03-18
* When using paginate="custom" most variables are now available in global scope	// NOTICE: Please reactivate the extension in the backend to activate new hooks!

1.5.5 - 2012-02-29
* Fixed bug where the {abp_pagination_html} tag itself would be displayed when there were no results

1.5.4 - 2012-02-17
* Bugfix: PHP error on EE 2.3.1

1.5.3 - 2012-02-06
* Bugfix: PHP error on no entries on EE 2.4

1.5.2 - 2012-01-30
* Added support for enabling of strict URLs (extension settings) for displaying a 404 on pagination pages that doesn't exist (ie. /P1000 if there are no entries on that page)
* Bugfix for paginate="custom" where a single pagination link would show up if there was only one page

1.5.1 - 2012-01-28
* Bugfix for paginate="custom" and embeds

1.5 - 2012-01-24
* Updated to work with EE 2.4
* Added support for paginate="custom" parameter in {exp:channel:entries} tag, which will make {abp_pagination_html} variable available to use anywhere (for locating pagination outside the exp:channel:entries tag for instance). Note; this only works in 2.4+ and you'll have to disable/reenable the extension to activate it

1.2.2 - 2011-09-29
* Added support for "fixed_size" parameter to set the number of pagination links to .. yes you guessed it, a fixed size ;-)

1.2.1 - 2011-09-23
* Bugfix: PHP errors would occur if logged in as super admin and channel:entries tag returned no results

1.2 - 2011-09-22
* Added support for {abp_entry_from} and {abp_entry_to} which can be used to display information like eg. "Showing entry 16 to 30 of 168"
* Added support for the "paginate_base" exp:channel:entries parameter used to override the normal pagination link locations and point instead to the explicitly stated template group and template.
* Added support for {abp_query_string} tag which contain the query strings, if any (for this to work config param enable_query_strings in EE must be set to TRUE)
* Bugfix: when using the "initial_size" parameter one could get links to pages which didn't exist

1.1.1 - 2011-08-29
* Bugfix for websites with EE installed in subfolder of the webroot

1.1 - 2011-08-29
* Added support for Structure
* Added support for SolSpace Tag
* Added tag_prefix setting for users who wish to change the default 'abp_' tag prefix

1.0 - 2011-08-25
* Initial release

AB Pagination Links

Hooks Used

If the add-on is an extension, and ties into ExpressionEngine's core files, it will use ExpressionEngine hooks. We are listing any hooks the add-on uses for developers to have an easier time locating other add-ons that they can reference for their own work.

  1. channel_module_create_pagination
  2. channel_module_fetch_pagination_data

This entry was created August 25, 2011, 9:20 am.
This entry was last updated June 12, 2015, 5:44 am.

Disclaimer: Information about ExpressionEngine add-ons is provided as a service to you, the user, and every member of the ExpressionEngine community. devot:ee is not responsible if you hose, mangle, wreck, or otherwise destroy your EE website by installing an add-on that you found out about at this site, regardless of its rating, Favorites status, commercial or free status, or general popularity. Caveat EEmptor!

Returns: devot:ee has a 30-day return policy on all commercial add-ons sold through devot-ee.com. If you need to return an add-on, do not go to the developer or the developer's site, but rather visit our returns page at https://devot-ee.com/returns to initiate your return. If you have questions, email support@devot-ee.com.

9 Reviews:

victorbones 09.01.16

Rating - {addon_rating_average}

Really great

Jules6120 05.26.15

Rating - {addon_rating_average}

Just works - perfectly!

Mike Mella 01.30.12

Mike Mella
Rating - {addon_rating_average}

I asked Bjorn if AB Pagination had a particular feature. It didn’t, so he added that feature the next day.

Can’t get better service than that.

timprint 12.14.11

Rating - {addon_rating_average}

Superb. Pagination as it should be. Up and running in a couple of minutes. Get the developer license.

iain 11.20.11

Rating - {addon_rating_average}

This add-on saved my life, once.

Ryan Masuga 11.04.11

Ryan Masuga
Rating - {addon_rating_average}

I went ahead and bought the developer license because there really isn’t any reason NOT to use this when you need to customize your pagination. Good stuff. Thanks!

bangkokwebdesign 10.11.11

Rating - {addon_rating_average}

Downloaded installed copied and pasted sample text, adjusted my CSS best $11 I spent.

Philip 09.18.11

Rating - {addon_rating_average}

Tired of hacking EEs native pagination with php or javascript? Me too. This extension will make you literally squeal with delight as you code completely custom pagination.

Suck it up and buy the developer licence. This is now a standard install for me.

VosSavant 09.02.11

Rating - {addon_rating_average}

The limitations of EE pagination have always been frustrating to me, so this add-on is a Godsend. I had some trouble getting it to work with exp:query, so Bjorn whipped up a quick module that made the two work together. If you have a problem, his support is amazing.