Better to use a post type archive, page template, or shortcode for generating a highly configurable CPT archive?

I’m posting my comment to @MarkKaplun as part of my answer.

My point is this, every end user experience a certain thing in a certain way based on his/her own knowledge, experience, usability and personal preference. There can never be a wrong or right answer here. Option one might suite you best, option two might suite me better. I like the way the OP has set out all pro’s and con’s, and his points are valid. I think we all miss the real question here. What type of market are you targeting here. Will this be distributed to people with a lot of knowledge or novices in WordPress.

To extend my comment into a full answer, I would like to add the following:

  • Whatever option you are going to implement, you should include a well documented step-by-step instructions manual with your theme.

  • Always think like a novice, someone that have no to very little experience with WordPress and php when developing a theme or plugin for public distribution.

  • Choose a target market and develop your theme according to that specific market. Remember, you can never please everybody.

  • On the point of the URL, will you really be using the URL of your archive page somewhere else in your theme

  • Write a custom walker to include archive pages automatically when a new custom post type is created. No need to add links manually

  • Make use of custom widget areas and custom meta boxes to include extra information from the back end. I personally think this is the most dynamic way of doing it

  • Not the best option, but make use of a custom post type to add an additional post area in your archive page. This way, you can make use of the WYSIWYG editor. You can add that content then via a custom query or a custom widget.

I think there are still a lot of point I did not cover, but this is most probably the most important

EDIT 1

Just for extra info on page templates. In stead of creating a page template for every post type, you can use a dynamic page which you can use. Please refer to this post I recently did. It might be a bit overboard, but this template can come in handy

Leave a Comment