Post Type Archive Link


Post Type Archive Link creates a metabox on the Appearance > Menu admin page.
This lists your custom post types and allows you to add links to each archive page in your WordPress menus.

The plug-in uses WordPress’ default menu classes for current pages, current page parent and current page ancestor.

By default all post types with archives (and not registered by core) are available for adding to your menu.
You can forcibly revent a particlar post type from appearing using the show_{$posttype}_archive_in_nav_menus hook.


  • Custom post type 'Clients' in front-end menu with WordPress menu classes and current item styles
  • Custom post types admin menu metabox
  • Custom post types added to your menu


I can’t see in the ‘post type’ metabox on the Apperance > Menus screen

View the “screen options” (top right), and ensure that “Post Type Archives” is checked.

Why are some post types missing?

The metabox will only list custom post types registered with non-falsey has_archive, publicly_queryable or show_in_vav_menus.

CPTs having true has_archive' but falsepublicly_queryableand/orshow_in_vav_menuscan be shown usingshow_{$cpt_slug}_archive_in_nav_menus` filter hook.


Read all 24 reviews


1.3.1 – 12th April 2015

  • Fixes incomptability with PHP 5.3 and older.


  • Make submit button available for translation. Thanks to @antwortzeit.
  • Removed hooks from constructor, allowed plugin disabling: removing all hooks and text domain
  • Introduced “post_type_archive_links” filter hook to get an instance of plugin class
  • Hide CPTs having ‘has_archive’ true, but ‘publicly_queryable’ and/or ‘show_in_vav_menus’ set to false
  • Introduced “show_{$cpt_slug}_archive_in_nav_menus” filter to force CPTs be added on metabox
  • Show “No items.” when there are no CPTs available
  • Tested up to 4.0
  • Added Italian language. Thanks to @giuseppe.mazzapica.
  • Updated readme


  • Use has_archive rather than public. See #13
  • Fixes bug where “disabled” is printed if no menu has been created.
  • Tested up to 3.7.1
  • Added German language. Thanks to @mcguffin.


  • Fixed a couple of notices that displayed with debug on
  • Better maintainability (avoid touching JS files)
  • Static init now runs during plugins_loaded hook
  • Code cleanup and safer names


  • Fixed enqueue bug


  • Added plug-in

Contributors & Developers

This is open source software. The following people have contributed to this plugin.


Browse the code