I noticed that WP 3.1 supposedly has ‘new CMS capabilities like archive pages for custom content types‘, however, I can’t see that implemented yet?
I’ve been using a plugin called ‘Simple Custom Post Type Archives’ to view custom posts at the url http://www.domainname.com/custom-post-type/, but wanted to use the in-built capability considering it is ‘now possible’.
Has anyone else had the same issue?
Thanks
osu
PS. I’m using archive-custom_post_type_name.php to try and style my custom post type archive page
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
Yes, you’ll just need to set the has_archive parameter to true or your chosen slug when registering your custom post type.
So firstly add the has_archive parameter to your post type, here’s an example…
add_action( 'init', 'question_10706_init' );
function question_10706_init() {
register_post_type( 'example', array(
'labels' => array(
'name' => __('Examples'),
'singular_name' => __('Example')
),
'public' => true,
'show_ui' => true,
'rewrite' => array(
'slug' => 'example',
'with_front' => false
),
//'has_archive' => true // Will use the post type slug, ie. example
//'has_archive' => 'my-example-archive' // Explicitly setting the archive slug
) );
}
The has_archive parameter supports the following settings.
-
false (default)
No archive
-
true
The archive url is formulated from the post type slug
www.example.com/example/ -
‘string‘
The archive url is explicitly set to the slug you provided
www.example.com/my-example-archive/
Once you’ve added the parameter visit the permalink page, this will cause a regeneration of the rewrite rules, accounting for the custom post type archive.
Lastly, create an archive-{$post_type}.php template to handle that archive (it could be a straight copy->paste of your existing archive, make adjustments as necessary).
Noting, that {$post_type} would of course represent the slug of your actual post type.
Sourced information:
- Mark McWilliams also wrote about this
on his blog:
WordPress 3.1 Introduces Custom Post Type Archives - Trac ticket that introduced the new
post type archives.
Ticket #13818 – There should be index pages for custom post
types
Hope that helps. 🙂
Method 2
Yes, that is implemented in 3.1, you have to make sure that the arguments passed to register_post_type have the has_archive flag set to true. See the Codex page about it.
You might also need to visit your permalink settings page and resubmit them, that seems to help things often.
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0