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.
- Activate the plugin through the ‘Plugins’ menu in WordPress
<?php wp_get_archives_cpt( 'post_type=custom_post_type' ); ?>in your templates
I haven’t had any yet…
works as described.
Contributors & Developers
“Archives for Custom Post Types” is open source software. The following people have contributed to this plugin.Contributors
Interested in development?
- Fixed pagination links
- Broke then fixed some stupid minor issues. I’ve updated trunk and 1.0 a few times so probably better to tag this now.
- Initial commit. All seems to be working correctly to me.