Plugin Directory

Test out the new Plugin Directory and let us know what you think.

Admin Post Navigation

Adds links to navigate to the next and previous posts when editing a post in the WordPress admin.

2.0 (2016-01-14)

  • New: Add support for RTL display.
  • New: Enable post navigation for media when viewed/edited from list mode.
  • New: Move CSS into enqueuable .css file.
  • New: Move JS into enqueueable .js file.
  • Bugfix: Navigate non-hierarchical posts by post_date by default for more expected ordering.
  • Change: Use the_title_attribute() to get post title for use in attribute.
  • Remove: Delete add_css() and add_js().
  • Change: Add support for language packs:
    • Don't load plugin translations from file.
    • Remove .pot file and /lang subdirectory.
  • Change: Note compatibility through WP 4.4+.
  • Change: Remove support for WordPress older than 4.0.
  • Change: Explicitly declare methods in unit tests as public.
  • Change: Update copyright date (2016).
  • New: Add inline documentation for class variables.
  • New: Create empty index.php to prevent files from being listed if web server has enabled directory listings.

1.9.2 (2015-08-19)

  • Bugfix: Fix so navigation links appear in WordPress 4.3 (by targeting h1 instead of h2). Backwards compatibility maintained.
  • Update: Note compatibility through WP 4.3+

1.9.1 (2015-07-08)

  • Bugfix: Fix JS placement of navigation links to target the desired h2, which may not always be the first on the page
  • Update: Add additional unit test using example for customizing post status navigation
  • Update: Fix incorrect example for excluding post statuses via filter
  • Update: Improve example for using hook to define custom order for navigation
  • Update: Remove unused line of code.
  • Update: Note compatibility through WP 4.2+

1.9 (2015-03-14)

  • Fix to only append navigation to the first h2 on the page. props @pomegranate
  • Add filter 'c2c_admin_post_navigation_prev_text' to allow customization of the previous navigation link text. props @pomegranate
  • Add filter 'c2c_admin_post_navigation_next_text' to allow customization of the next navigation link text. props @pomegranate
  • Restrict orderby value to be an actual posts table field
  • Add unit tests
  • Prevent querying for a post if there isn't a global post_ID set or if no valid post_statuses were set
  • Cast result of 'c2c_admin_post_navigation_post_statuses' filter to an array to avoid potential PHP warnings with improper use
  • Improved sanitization of values returned via the 'c2c_admin_post_navigation_post_statuses' filter
  • Add docs for new filters
  • Documentation improvements
  • Reformat plugin header
  • Note compatibility through WP 4.1+
  • Update copyright date (2015)
  • Minor code reformatting (bracing, spacing)
  • Change documentation links to wp.org to be https
  • Add plugin icon
  • Regenerate .pot

1.8 (2013-12-29)

  • Hide screen option checkbox for metabox if JS hides metabox for inline use
  • Improve spacing within its metabox (when shown if JS is disabled)
  • Note compatibility through WP 3.8+
  • Update copyright date (2014)
  • Change donate link
  • Minor readme.txt tweaks (mostly spacing)
  • Update banner
  • Update screenshots


  • Add check to prevent execution of code if file is directly accessed
  • Note compatibility through WP 3.5+
  • Update copyright date (2013)
  • Move screenshots into repo's assets directory


  • Use string instead of variable to specify translation textdomain
  • Re-license as GPLv2 or later (from X11)
  • Add 'License' and 'License URI' header tags to readme.txt and plugin file
  • Add banner image for plugin page
  • Remove ending PHP close tag
  • Minor documentation tweaks
  • Note compatibility through WP 3.4+


  • Add support for localization
  • Use post type label instead of post type name, when possible, in link title attribute
  • Use larr/rarr characters to denote direction of navigation instead of larquo/rarquo
  • Enhanced styling of navigation links
  • Hook 'admin_enqueue_scripts' action instead of 'admin_head' to output CSS
  • Hook 'load-post.php' to add actions for the post.php page rather than using $pagenow
  • Add version() to return plugin version
  • Add register_post_page_hooks()
  • Remove admin_init() and hook 'do_meta_boxes' in register_post_page_hooks() instead
  • Update screenshots for WP 3.3
  • Note compatibility through WP 3.3+
  • Drop compatibility with versions of WP older than 3.0
  • Update screenshots for WP 3.3
  • Tweak plugin description
  • Add link to plugin directory page to readme.txt
  • Minor code reformatting
  • Minor readme.txt reformatting
  • Update copyright date (2012)


  • Use ucfirst() instead of strtoupper() to capitalize post type name for metabox title
  • Note compatibility through WP 3.2+
  • Minor code formatting changes (spacing)
  • Add FAQ section to readme.txt
  • Fix plugin homepage and author links in description in readme.txt


  • Add support for navigation in other post types
    • Add filter 'c2c_admin_post_navigation_post_types' for customizing valid post_types for search
    • Enable navigation for all post types by default
    • Allow per-post_type sort order for navigation by adding $post_type argument when applying filters for 'c2c_admin_post_navigation_orderby'
    • Pass additional arguments ($post_type and $post) to functions hooking 'c2c_admin_post_navigation_post_statuses'
  • Ensure post navigation only appears on posts of the appropriate post_status
  • For hierarchical post types, order by 'post_title', otherwise order by 'ID' (filterable)
  • Move application of filters from admin_init() into new do_meta_box(), which is hooking 'do_meta_box' action, so they only fire when actually being used
  • Output JavaScript via 'admin_print_footer_scripts' action rather than 'admin_footer'
  • Rename class from 'AdminPostNavigation' to 'c2c_AdminPostNavigation'
  • Switch from object instantiation to direct class invocation
  • Explicitly declare all functions public static and class variables private static
  • Documentation tweaks
  • Note compatibility through WP 3.1+
  • Update copyright date (2011)


  • Change post search ORDER BY from 'post_date' to 'ID'
  • Add filter 'c2c_admin_post_navigation_orderby' for customizing search ORDER BY field
  • Add filter 'c2c_admin_post_navigation_post_statuses' for customizing valid post_statuses for search
  • Deprecate (but still support) 'admin_post_nav' filter
  • Add filter 'c2c_admin_post_navigation_display' filter as replacement to 'admin_post_nav' filter to allow modifying output
  • Retrieve post title via get_the_title() rather than directly from object
  • Also strip tags from the title prior to use in tag attribute
  • Don't navigate to auto-saves
  • Check for is_admin() before defining class rather than during constructor
  • esc_sql() on SQL strings that have potentially been filtered
  • Use esc_attr() instead of attribute_escape()
  • Store plugin instance in global variable, $c2c_admin_post_navigation, to allow for external manipulation
  • Fix localization of the two strings
  • Instantiate object within primary class_exists() check
  • Note compatibility with WP 3.0+
  • Drop compatibility with version of WP older than 2.8
  • Minor code reformatting (spacing)
  • Remove docs from top of plugin file (all that and more are in readme.txt)
  • Remove trailing whitespace in header docs
  • Add Upgrade Notice and Filters sections to readme.txt
  • Add package info to top of plugin file


  • Add PHPDoc documentation
  • Note compatibility with WP 2.9+
  • Update copyright date
  • Update readme.txt (including adding Changelog)


  • Add offset and limit arguments to query()
  • Only get ID and post_title fields in query, not *
  • Change the previous/next post query to ensure it only gets posts the user can edit
  • Note compatibility with WP 2.8+


  • Initial release

Requires: 4.0 or higher
Compatible up to: 4.5.7
Last Updated: 12 months ago
Active Installs: 20,000+


4.6 out of 5 stars


Got something to say? Need help?


Not enough data

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

100,2,2 100,1,1
50,2,1 100,1,1
100,1,1 100,1,1
100,2,2 100,1,1
100,1,1 100,1,1