WP 3.1 – archive pages for custom content types possible now without a plugin?

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’.

Read More

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

Related posts

Leave a Reply

2 comments

  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.

    1. false (default)

      No archive

    2. true

      The archive url is formulated from the post type slug

      www.example.com/example/

    3. 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:

    Hope that helps. 🙂

  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.