{"id":2020,"date":"2012-01-02T21:27:35","date_gmt":"2012-01-02T21:27:35","guid":{"rendered":"https:\/\/2012.atlanta.wordcamp.org\/?post_type=wcb_session&#038;p=2020"},"modified":"2012-11-21T10:25:51","modified_gmt":"2012-11-21T10:25:51","slug":"mastering-custom-post-types","status":"publish","type":"wcb_session","link":"https:\/\/atlanta.wordcamp.org\/2012\/session\/mastering-custom-post-types\/","title":{"rendered":"Mastering Custom Post Types"},"content":{"rendered":"<h2>For Plugin &amp; Theme developers comfortable with PHP!<\/h2>\n<p><strong>Custom Post Types<\/strong> were a watershed feature added to WordPress 3.0 in 2010. Since then there has been an explosion of WordPress use for all types of sites, not just for blogs. But as with most powerful new features the reality is that taking Custom Post Types to their limit can take thousands of hours of trial and error.<\/p>\n<p>But why spend all those hours with a sore forehead when you can bypass most of the effort by attending this presentation? This presentation will show <strong>all techniques in PHP code<\/strong> starting in WordPress theme&#8217;s <code>functions.php<\/code> file and we&#8217;ll convert to a plugin during the presentation.<\/p>\n<h2>Here&#8217;s what you&#8217;ll learn:<\/h2>\n<ul>\n<li><strong>Define<\/strong> a Custom Post Type in PHP,<\/li>\n<li><strong>Configure Edit Screens<\/strong> for Posts and Pages,<\/li>\n<li>Set up <strong>Custom Columns<\/strong> in the post list admin screen,<\/li>\n<li>Set up <strong>Custom Sorts and Filters<\/strong> in the post list admin screen,<\/li>\n<li>Create <strong>Custom Meta Boxes<\/strong> with <strong>custom form fields<\/strong>,<\/li>\n<li>Add <strong>Custom Meta Boxes<\/strong> for <strong>parent\/child<\/strong> Post Types,<\/li>\n<li><strong>Query<\/strong> Custom Post Types within Theme files,<\/li>\n<li>Create <strong>Custom Taxonomies<\/strong> and <strong>Assign<\/strong> to any Post Type, even Posts and Pages,<\/li>\n<li>Add a <strong>Parent Post Field<\/strong> in a Metabox of the Post Editor,<\/li>\n<li>Create <strong>Hierarchical URLs<\/strong> for Hierarchical Custom Post Types,<\/li>\n<li>Recognize and Bypass the various <strong>gotchas<\/strong> you&#8217;ll run into,<\/li>\n<li>AND <strong>maybe<\/strong> a few other things that come up as questions during the workshop.<\/li>\n<\/ul>\n<p>This is designed to be a <strong>fast-paced<\/strong> presentation for people who are comfortable using PHP. We&#8217;ll show a series of code snippets so you can see how each one comes together. And we&#8217;ll make mistakes while we&#8217;re working so you can see how to get past the mistakes you will inevitably make.<\/p>\n<h2>PRE-REQUISITES:<\/h2>\n<ul>\n<li>Some experience programming in PHP.<\/li>\n<li><em>Nice to have:<\/em> Experience writing plugins or themes.<\/li>\n<\/ul>\n<p><a title=\"Mastering Custom Post Types\" href=\"http:\/\/www.slideshare.net\/MikeSchinkel\/mastering-custom-post-types-wordcamp-atlanta-2012\" target=\"_blank\">Presentation Slides<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>For Plugin &amp; Theme developers comfortable with PHP! Custom Post Types were a watershed feature added to WordPress 3.0 in 2010. Since then there has been an explosion of WordPress use for all types of sites, not just for blogs. &hellip; <a href=\"https:\/\/atlanta.wordcamp.org\/2012\/session\/mastering-custom-post-types\/\">Continue reading <span class=\"screen-reader-text\">Mastering Custom Post Types<\/span>  <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":8115226,"featured_media":0,"template":"","meta":{"_crdt_document":"","jetpack_post_was_ever_published":false,"_wcpt_session_time":0,"_wcpt_session_duration":3000,"_wcpt_session_type":"","_wcpt_session_slides":"","_wcpt_session_video":"","_wcpt_speaker_id":[2298],"footnotes":""},"session_track":[20994],"session_category":[],"class_list":["post-2020","wcb_session","type-wcb_session","status-publish","hentry","wcb_track-wordpress-dev"],"jetpack_shortlink":"https:\/\/wp.me\/p1vcuR-wA","jetpack_sharing_enabled":true,"session_date_time":{"date":"","time":""},"session_speakers":[{"id":"2298","slug":"mike-schinkel","name":"Mike Schinkel","link":"https:\/\/atlanta.wordcamp.org\/2012\/speaker\/mike-schinkel\/"}],"session_cats_rendered":null,"_links":{"self":[{"href":"https:\/\/atlanta.wordcamp.org\/2012\/wp-json\/wp\/v2\/sessions\/2020","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atlanta.wordcamp.org\/2012\/wp-json\/wp\/v2\/sessions"}],"about":[{"href":"https:\/\/atlanta.wordcamp.org\/2012\/wp-json\/wp\/v2\/types\/wcb_session"}],"author":[{"embeddable":true,"href":"https:\/\/atlanta.wordcamp.org\/2012\/wp-json\/wp\/v2\/users\/8115226"}],"version-history":[{"count":12,"href":"https:\/\/atlanta.wordcamp.org\/2012\/wp-json\/wp\/v2\/sessions\/2020\/revisions"}],"predecessor-version":[{"id":3347,"href":"https:\/\/atlanta.wordcamp.org\/2012\/wp-json\/wp\/v2\/sessions\/2020\/revisions\/3347"}],"speakers":[{"embeddable":true,"href":"https:\/\/atlanta.wordcamp.org\/2012\/wp-json\/wp\/v2\/speakers\/2298"}],"wp:attachment":[{"href":"https:\/\/atlanta.wordcamp.org\/2012\/wp-json\/wp\/v2\/media?parent=2020"}],"wp:term":[{"taxonomy":"wcb_track","embeddable":true,"href":"https:\/\/atlanta.wordcamp.org\/2012\/wp-json\/wp\/v2\/session_track?post=2020"},{"taxonomy":"wcb_session_category","embeddable":true,"href":"https:\/\/atlanta.wordcamp.org\/2012\/wp-json\/wp\/v2\/session_category?post=2020"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}