Plugin Directory

Loop Post Navigation Links

Template tags (for use in single.php) to create post navigation loop (previous to first post is last post; next/after last post is first post).

2.6.1 (2016-03-10)

  • New: Add support for language packs:
    • Define 'Text Domain' header attribute.
    • Load textdomain.
  • New: Add LICENSE file.
  • New: Create empty index.php to prevent files from being listed if web server has enabled directory listings.
  • Change: Note compatibility through WP 4.4+.
  • Change: Explicitly declare methods in unit tests as public.
  • Change: Update copyright date (2016).

2.6 (2015-07-14)

  • Feature: Add new template tags for getting the adjacent or looped post object:
    • c2c_get_next_or_loop_post
    • c2c_get_previous_or_loop_post
    • c2c_get_adjacent_or_loop_post
  • Bugfix: Prevent a link from being shown if the post loops back to itself or is a non-post post_type
  • Bugfix: Correctly invoke c2c_adjacent_or_loop_post_link() via c2c_adjacent_or_loop_post_link action hook
  • Change: Create class to encapsulate some logic and data, removing use of a global variable
  • Update: Add documentation for new template tags
  • Update: Add more unit tests
  • Update: Minor inline documentation improvements and fixes
  • Update: Note compatibility through WP 4.3+
  • Note: All functions deprecated since v2.0 will be removed in the next major version release

2.5.2 (2015-02-12)

  • Update: Note compatibility through WP 4.1+
  • Update: Extend copyright date (2015)

2.5.1 (2014-08-25)

  • Minor plugin header reformatting
  • Minor documentation syncing between c2c_get_adjacent_or_loop_post_link() and get_adjacent_post_link()
  • Minor code reformatting (spacing, bracing)
  • Change documentation links to w.org to be https
  • Note compatibility through WP 4.0+
  • Add plugin icon

2.5 (2013-12-31)

  • Support looping through any taxonomy (not just categories)
    • Add $taxonomy arg to nav functions (default is 'categories')
    • Rename arg $in_same_cat to $in_same_term
    • Rename arg $excluded_categories to $excluded_terms
  • Add function c2c_get_adjacent_or_loop_post_link() as non-echoing version of c2c_adjacent_or_loop_post_link()
  • Add function c2c_get_next_or_loop_post_link() as non-echoing version of c2c_next_or_loop_post_link()
  • Add function c2c_get_previous_or_loop_post_link() as non-echoing version of c2c_previous_or_loop_post_link()
  • Add action 'c2c_get_next_or_loop_post_link'
  • Add action 'c2c_get_previous_or_loop_post_link'
  • Add action 'c2c_get_adjacent_or_loop_post_link'
  • Add filter 'c2c_next_or_loop_post_link_get'
  • Add filter 'c2c_previous_or_loop_post_link_get'
  • Add unit tests
  • Adjust all existing do_action() calls to send an additional arg
  • Minor re-syncing with adjacent_post_link()
  • Improve phpDoc formatting (spacing)
  • Note compatibility through WP 3.8+
  • Drop compatibility with versions of WP older than 3.6
  • Update copyright date (2014)
  • Change donate link
  • Minor readme.txt tweaks (mostly spacing)
  • Add banner


  • Sync adjacent_or_loop_post_link() with most changes made to WP's adjacent_or_post_link()
    • Always run output through filters
    • Pass original $format to filters
    • Pass $post to filters
    • Minor code reformatting (spacing)
    • NOTE: arguments to filters have changed
  • Rename next_or_loop_post_link() to c2c_next_or_loop_post_link() (but maintain a deprecated version for backwards compatibility)
  • Rename previous_or_loop_post_link() to c2c_previous_or_loop_post_link() (but maintain a deprecated version for backwards compatibility)
  • Rename adjacent_or_loop_post_link() to c2c_adjacent_or_loop_post_link() (but maintain a deprecated version for backwards compatibility)
  • Add filter 'c2c_next_or_loop_post_link' so that users can use the do_action('c2c_next_or_loop_post_link') notation for invoking the function
  • Add filter 'c2c_previous_or_loop_post_link' so that users can use the do_action('c2c_previous_or_loop_post_link') notation for invoking the function
  • Add filter 'c2c_adjacent_or_loop_post_link' so that users can use the do_action('c2c_adjacent_or_loop_post_link') notation for invoking the function
  • Rename filter 'previous_or_loop_post_link' to 'c2c_previous_or_loop_post_link_output' (but maintain old filter for backwards compatibility)
  • Rename filter 'next_or_loop_post_link' to 'c2c_next_or_loop_post_link_output' (but maintain old filter for backwards compatibility)
  • Add "Filters" section to readme.txt
  • Add check to prevent execution of code if file is directly accessed
  • Update documentation
  • Note compatibility through WP 3.5+
  • Update copyright date (2013)


  • Re-license as GPLv2 or later (from X11)
  • Add 'License' and 'License URI' header tags to readme.txt and plugin file
  • Remove ending PHP close tag
  • Note compatibility through WP 3.4+


  • Note compatibility through WP 3.3+
  • Add link to plugin directory page to readme.txt
  • Update copyright date (2012)


  • Note compatibility through WP 3.2+
  • Update copyright date (2011)
  • Minor code formatting (spacing)
  • Add plugin homepage and author links to description in readme.txt


  • Add rel= attribute to links
  • Wrap all functions in if(!function_exists()) check
  • Check that GLOBALS['post'] is an object before treating it as such
  • Minor code tweaks to mirror more recent changes to adjacent_post_link()
  • Note compatibility with WP 3.0+
  • Minor code reformatting (spacing)
  • Add Upgrade Notice section to readme
  • Remove docs from top of plugin file (all that and more are in readme.txt)
  • Remove trailing whitespace in header docs


  • Add PHPDoc documentation
  • Note compatibility with WP 2.9+
  • Update copyright date


  • Added adjacent_or_loop_post_link() and have next_or_loop_post_link() and previous_or_post_link() simply deferring to it for core operation
  • Added support for %date in format string (as per WP)
  • Added support for 'previous_post_link' and 'next_post_link' filters (as per WP)
  • Added support for 'previous_or_loop_post_link' and 'next_or_loop_post_link' filters
  • Removed two previously used global variable flags and replaced with one
  • Changed description
  • Noted compatibility with WP 2.8+
  • Dropped support for pre-WP2.6
  • Updated copyright date


  • Initial release

Requires: 3.6 or higher
Compatible up to: 4.5.3
Last Updated: 3 months ago
Active Installs: 1,000+


5 out of 5 stars


1 of 1 support threads in the last two months have been marked resolved.

Got something to say? Need help?


Not enough data

0 people say it works.
0 people say it's broken.