The ability to create custom post types was a great feature added in WordPress 2.9 and then expanded in 3.0. It allows us to create completely different types of content than the standard “Pages” and “Posts” we’re all used to.
To get started with custom post types, here’s my recommended list of links and resources:
General Overview of Custom Post Types
Custom post types in WordPress
Justin Tadlock has the best all around reference guide for building custom post types. This article has several code snippets and in-depth explanations of how to build custom post types, add taxomonies, and display the posts on your site. There’s also a follow-up article explaining how to display the custom post types on your home page.
Custom Post Types by WP Engineer
WP Engineer does really solid posts about new WordPress features. This one has a list of the arguments you might need when setting up a custom post type array.
WordPress Codex for Custom Post Types
The WordPress codex has basic reference for custom post types.
Adding Meta Boxes to Custom Post Types
When you create a custom post type, you are able to specify which metaboxes are available on the edit screen. The metaboxes generally included with the post are title, content, excerpt, and custom fields.
But if you’re using the post types in new or interesting way, you’ll likely need more custom metaboxes. For instance, if you were making a real estate web site, you’d probably want the “Properties” custom post type to have boxes for entering the address, list price, amount of bedrooms, etc. To add these, you’ll need to create new custom meta boxes.
How to create a Meta Box
There’s several tutorials out there for creating custom meta boxes, and most of them will work for custom post types- even if it was written before WordPress 3.0 came out. I wrote this tutorial for adding metaboxes to custom post types based on a post by Deluxe Blog Tips.
Custom Taxonomies
A Refresher on Custom Taxonomies
You won’t be using custom post types for long before you realize there needs to be a way to organize them. Pages and posts currently use categories and tags as taxonomies- but if you were making a post type called “Movies”, it might make sense to build a taxonomy for “Actors” to tag your posts in. This article by Justin Tadlock has code examples and explanations for using taxonomies.
In Depth Explanation of Taxonomies
If you still don’t quite understand what taxonomies are, I’d recommend checking out this article by Michael Fields. There’s also an entertaining screencast that explains what a taxonomy is and how you might use one.
Other Resources
Voosh Themes has a terrific tutorial for creating a professional portfolio using custom post types.
Replace the standard tack icon for custom post types with slick icons ‘specially made for that purpose.
Plug-Ins for Managing Custom Post Types
Simple Custom Post Type Archives
One problem with custom post types is a lack of templates. Out of the box, WordPress only has support for single-customposttype.php. If you have archives, or want a multiple listing, you’ll need to build the template redirects in or use a page template. Jake Goldman built a plug-in to handle this issue. Michael Fields wrote an article and code snippet to address it. And Matt Weibe has a plugin that’s not in the repository, but also handles the issues of redirects.
Convert Post Types
Perhaps you have a lot of posts on your site, let’s say for a portfolio, that you now want to convert into a custom post type. Rather than copying everything over by hand, you could use this handy plug-in. It’s also hosted in the WordPress repository.
Custom Post Type UI
If you’re unfamiliar with PHP code, you can still add custom post types to your site. Brad Williams of WebDevStudios made a nice user interface that allows you to set up the custom post types and define the taxonomies, all from the comfort of your WordPress dashboard.
Themes and Plugins That Use Custom Post Types
Quality Control
A free innovative theme using custom post types to manage bug reports.
Calendar Press
Uses custom post types to create events. Allows you to set a start and end time, location and address.
Estate
Estate is a real estate theme by Woo Themes (affiliate link) that uses custom post types for property listings.
Portfolio Theme
Portfolio Theme is a free GPL theme that I released. You can add various images to your portfolio post type to display them on your site. It’s excellent for artists or web designers. Feel free to look at the code and use it for your own projects.
WP E-Commerce
The WP-Ecommerce Plugin is scheduled to use custom post types in their next release.
WP Bids
WP Bids uses a custom post type to generate client proposals and job estimates.
TBTestimonials
Manage your client testimonials with Custom Post Types. There’s even a spiffy widget.
Rotary
A free theme with a slider for custom post type images.
CPT – Speakers
This plugin creates a custom post type for event speakers. Includes speakers page and single-speakers page templates.
Add Your Own Links
There’s still a lot of work being developed for custom post types. If you notice a new tutorial, theme or plugin that I haven’t mentioned, please add it to the comments so I can put it in the post.
I notice there’s a similar plug-in out there called WP Post Type UI which is “Inspired by “Custom Post Type UI.”
I’m concerned with getting a mix of plug-ins that don’t clash with one another. Clearly I’ll want one solution to add the custom post type, and another one to display the post types in a group. I guess I’ll do some trial-and-error and see what works…
If you’re comfortable with the code, I’d just set it up without relying on a plugin. You can easily add the necessary code to the functions.php file of your theme- and that means you won’t have plugin conflicts or issues.
Wow thanks for posting this! It’s just what I needed.
Thanks for adding WP Bids! Great post…
I started using easy post types plugin http://www.wpeasyposttypes.com/
It seems to work fine. It just doesn’t have any CSS for the meta boxes, so it’s not very pretty.
Michael Fields mentions this plugin http://wordpress.org/extend/plugins/gd-taxonomies-tools/ in the screencast, so I’ll give it a try as well.
yeah so apparently easy post type plugin is the only one to allow creating extra meta boxes!
Wow, Paul, thanks for the tip!
I’m currently using a combination of Custom Post Type UI (to make the post types) and Verve Meta Boxes (to make meta boxes.)
EPT will do both with one plugin. I just watched the videos, (somebody give that man a microphone!) and noticed EPT wll also let you easily customize the edit fields in the admin interface!!! That saves me a lot of custom code replacing when I want to switch templates.
The only non-ideal thing is there’s no standard wordpress syntax on the database fields to call them in your templates. So if a new plug in comes out, that you like better – like in this case, it’s back to the template to update all the custom field displays. Not a super big deal in the grand scheme OT.
WordPress 3 has come a long way in less than a month. This post and discussion thread is the most valuable resource I’ve found for CPTs. Thanks Devin, and Paul, and all commenters past and future :)
just to reply to Matth, on the particular site I’m working on now, the EasyPostTypes plugin is throzing a Fatal Error, and there doesn’t seem to be free support available , so use it with caution.
Hey, thanks for the heads up – are you using v1 or 1.0.1 released 7/3/2010? Maybe there’s a fix from v1.
Oh Yikes, I just messed around with EPT and discovered there’s no way to create Taxonomies within EPT, unlike WP Post Type UI, or Custom Post Type UI. That seems like a pretty essential feature.
So as of today, July 14, there’s no single plug in to manage Post Types, Taxonomies, and Meta Boxes. I suspect that will change in the coming months. Exciting times for WP!
@Matth – check this out http://labs.dagensskiva.com/2010/07/10/more-plugins-dev-camp/
these guys have a ‘suite’ of plugins that address Post Types, Taxonomies and Meta Boxes – the updated versions should be out soon. I’ve been using the previous version of More Fields for over a year now and its one of the most flexible, featured-rich plugins around.
the error I was having with EPT was actually due to the wrong version of PHP on the server, so apologies for that. The plugin was not at fault
I now use “custom field template” plugin for the meta boxes (not a big fan of the UI) but it gets the job done and GD txonomy and custom post tools
great article, when i study custom post type that time i collect this link, if you find this useful. accept comment.
http://thinkvitamin.com/code/create-your-first-wordpress-custom-post-type/
http://justintadlock.com/archives/2010/07/10/meta-capabilities-for-custom-post-types
http://justintadlock.com/archives/2010/08/20/linking-terms-to-a-specific-post
http://scribu.net/wordpress/advanced-metadata-queries.html
http://justintadlock.com/archives/2010/04/29/custom-post-types-in-wordpress
http://wordpress.stackexchange.com/questions/45/how-to-sort-the-admin-area-of-a-wordpress-custom-post-type-by-a-custom-field
I would love to see you add Easy Content Types to the list of plugins: http://codecanyon.net/item/easy-custom-content-types-for-wordpress/234182