This document discusses custom post types and taxonomies in WordPress. It explains that custom post types allow adding different content types beyond standard posts and pages. Taxonomies allow categorizing and tagging custom content. Plugins can easily create these, or they can be coded manually. Templates and queries must also be customized to display and retrieve custom content types and taxonomies. Custom fields further extend content by adding specific metadata.
2. Who Am I? I am a self-taught designer and programmer with over 5 years of experience working with a variety of businesses, non-profits, and individuals. While I specialize in WordPress themes and CMS development, I also do all levels of Web Design and XHTML/CSS coding. I freelance some through my personal brand, Tammy Hart Designs while also working a full time gig at blr | further as a UI Developer. TammyHartDesigns.com tammy@tammyhartdesigns.com @tammyhart
3. What is a Post Type? Posts and pages and more! Oh my!
4. How Do They Work? Should be called “Content Types” Content goes into the posts table Each content item is assigned a post_type The queries output the content The default post type is ‘post’
5. Built in Types Main Content Post – blog style content Page – static content Other Attachment – any images or other files uploaded to a post (of any type) Revision – an archive of versions of a particular post Nav Menu Item – Used in the new menu system
6. Custom Types Employees Products … any content that needs to be stored and used differently than blog posts or static pages Won’t show up in main RSS feed
7. What Isn’t a Post Type? Asides and galleries and links! Oh my!
8. Post Formats Coming in WordPress 3.1 Think Tumblr, not post types More like post’s post types, not different content types Will show up in main RSS feed
9. More Information Post Formats - WordPress.org Codexhttp://bit.ly/formats01 Post Formats vs. Custom Post Types – Mark Jaquithhttp://bit.ly/formats02 What, Whys, and How To’sof Post Formats in WordPress 3.1 – WP Beginnerhttp://bit.ly/formats03 Post types and formats and taxonomies, oh my! - Ottohttp://bit.ly/formats04
10. What Is a taxonomy? Read my lips, now new taxonomies
11. How Do They Work? Terms and their unique ID’s are saved in the terms table Terms are assigned a taxonomy in the term_taxonomy table Terms are related to posts (of all types) in the term_relationships table
12. Built in Taxonomies Post Taxonomies Category Post Tag Other Link Category Nav Menu
13. Custom Taxonomies Employee departments Product categories … any way you want to tag or categorize your custom post types Can be used with blog posts and static pages as well Multiple taxonomy query coming in WordPress 3.1 Use Query Multiple Taxonomies plugin
15. Register a Post Type function post_type_movies(){ register_post_type('movies', array('label'=> __('Movies'), 'public'=>true, 'show_ui'=>true, 'supports' =>array( 'post-thumbnails', 'excerpts', 'trackbacks', 'custom-fields', 'comments', 'revisions') ) ); register_taxonomy_for_object_type('post_tag', 'movies'); } add_action('init', 'post_type_movies'); First Impressions of Custom Post Type by Frank Bültge on WPEngineer.org http://bit.ly/posttypes
16. Default Arguments // Args prefixed with an underscore are reserved for internal use. $defaults =array( 'label' =>false, 'publicly_queryable' => null, 'exclude_from_search' => null, '_builtin' =>false, '_edit_link' =>'post.php?post=%d', 'capability_type'=>'post', 'hierarchical' => false, 'public' => false, 'rewrite' =>true, 'query_var' =>true, 'supports' =>array(), 'register_meta_box_cb' => null, 'taxonomies' =>array(), 'show_ui' => null ); First Impressions of Custom Post Type by Frank Bültge on WPEngineer.org http://bit.ly/posttypes
17. The Taxonomy Code function post_type_movies(){ … register_taxonomy('actor', 'movies', array( 'hierarchical'=>true, 'label'=> __('Actor') ) ); register_taxonomy(‘director', 'movies', array( 'hierarchical'=>false, 'label'=>__(‘Director'), 'query_var'=>‘director', 'rewrite' =>array('slug'=>‘director') ) ); } add_action('init', 'post_type_movies'); First Impressions of Custom Post Type by Frank Bültge on WPEngineer.org http://bit.ly/posttypes
19. “ Overheard WordCamp Birmingham 2009 WordPress is the iPhone of the internet. You’ll always hear, “There’s a plugin for that!”
20. Plugins for Creating Them Custom Post Type UI Creates both TONS of labeling options WP Post Type UI Creates both Buggy Allows a custom icon More Types & More Taxonomies Allows you to override built in types and taxonomies Allows a custom icon Works seamlessly with the More Fields plugin (stay tuned for more)
21. Plugins for Manipulating Them Custom Post Type Order Drag and drop ordering Simple Custom Post Type Archives Adds support for custom post type archive permalinks Adds new body classes to custom post type archives Adds a new conditional, is_custom_post_type_archive Fixes the wp_title output on custom post type archives to show the custom type's label Adds custom post type feeds And more… Post Type Switcher Change the post type one item at a time Convert Post Types Bulk edit post types
23. Template Hierarchy Custom Post Type single-{post_type}.php single.php index.php Custom Post Types Display Coming in version 3.1 Use Simple Custom Post Type Archives plugin Custom Taxonomy taxonomy-{taxonomy}-{term}.php taxonomy-{taxonomy}.php taxonomy.php archive.php index.php
25. The Loop The Basic Loop <? $loop =newWP_query('post_type=movies'); while ($loop->have_posts()): $loop->the_post(); ?> ... Do Stuff Here ... <?endwhile; ?> Add Custom Taxonomies $loop =newWP_query('post_type=movies&actor=joaquin-phoenix'); $loop =newWP_query('post_type=movies&actor=joaquin-phoenix&director=m-night-shyamalan');
26. Term Lists Get All Terms $terms =get_terms('actors', 'order_by=count&order=DESC'); Get Terms in a Post get_the_term_list( $post->ID, 'actors', '<p>Actors: ', ',', '</p>' ) Other Functions get_term get_term_children get_term_by get_taxonomies
28. “ Matt Mullenweg WordCamp Birmingham 2009 I like what you’re doing; I just don’t like the way you’re having to do it. So I’m going to make it better.
29. No More Flutter Custom Post Types to create the special content Custom Taxonomies to organize the content Custom Fields to get specific information on each post in a way that is human and pretty
30. Customized Custom Fields Plugins More Fields Builds pretty boxes with custom types of custom fields Works perfectly with More Types and More Taxonomies Custom fields Widget-like interface Doesn’t seem to interact with custom post types Easy Custom Fields Just as much coding as the hand coded method … not so easy Hand Coded add_meta_box() Basically limitless Lots o’ code WordPress.org Codexhttp://bit.ly/metabox01 Tutorial at Deluxe Blog Tipshttp://bit.ly/metabox02 We Function Tutorialhttp://bit.ly/metabox03