DEPRECATION NOTICE: As of WordPress 4.4, you no longer need this plugin as
wp_get_archives()
now accepts custom post types as an argument. See
#34686.
This plugin provides proper support for archived pages of custom post types to match the support for normal posts.
The problem is that the function,
wp_get_archives()
does not allow you to pass in a post type. It only works for normal posts. There is a filter called
getarchives_where()
but this doesn't handle the archive URLs (e.g.
http://yoursite.com/2014/).
So while the filter will help you view the correct archives, it won't work properly in conjunction with the
wp_get_archives()
function. For example, a link to "June 2014" emitted by wp_get_archives() will only take you to normal posts from June 2014, not custom post types.
This plugin provides a new function:
wp_get_archives_cpt()
. This function can take a post_type argument as well as the usual arguments that can be passed to
wp_get_archives()
. The plugin also provides automatic handling for custom post type archive URLs.
This plugin has stemmed from a ticket that I have been working on in core:
https://core.trac.wordpress.org/ticket/21596
Unfortunately a proper patch for this in core will probably have to go quite deep. I have therefore decided to share this plugin as a temporary solution.