{"id":1365,"date":"2013-05-24T14:00:27","date_gmt":"2013-05-24T19:00:27","guid":{"rendered":"https:\/\/2013.chicago.wordcamp.org\/?post_type=wcb_session&#038;p=1365"},"modified":"2013-06-19T12:58:15","modified_gmt":"2013-06-19T17:58:15","slug":"writing-high-quality-wordpress-plugins","status":"publish","type":"wcb_session","link":"https:\/\/chicago.wordcamp.org\/2013\/session\/writing-high-quality-wordpress-plugins\/","title":{"rendered":"Writing high-quality WordPress plugins"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft  wp-image-1281\" alt=\"Brad-Griffith\" src=\"https:\/\/2013.chicago.wordcamp.org\/files\/2013\/05\/Brad-Griffith-150x150.jpeg\" width=\"105\" height=\"105\" srcset=\"https:\/\/chicago.wordcamp.org\/2013\/files\/2013\/05\/Brad-Griffith-150x150.jpeg 150w, https:\/\/chicago.wordcamp.org\/2013\/files\/2013\/05\/Brad-Griffith.jpeg 240w\" sizes=\"auto, (max-width: 105px) 100vw, 105px\" \/>Speaker: Brad Griffith<br \/>\nRead our <a title=\"WordCamp Chicago 2013 Speaker Interview: Brad Griffith\" href=\"https:\/\/2013.chicago.wordcamp.org\/speaker-interview-brad-griffith\/\">Interview with Brad Griffith<\/a><br \/>\nFollow him online: <a href=\"https:\/\/twitter.com\/brad_griffith\/\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full\" alt=\"twitter icon designed by Dan Leech\" src=\"https:\/\/2013.chicago.wordcamp.org\/files\/2013\/05\/simple-twitter-icon.png\" width=\"32\" height=\"32\" \/><\/a><\/p>\n<h3>Session Description:<\/h3>\n<p>When you can&#8217;t accomplish your project&#8217;s goals with custom post types and a custom theme, you have two options available: 1) write a separate application in a large MVC framework, or 2) develop a WordPress plugin that augments the built-in functionality in a way that meets your needs. \u00a0Both options present major challenges. \u00a0When integrating your WordPress site with another application, frontend code can become inconsistent and clients can become confused by multiple administrative backends and wildly different content management capabilities. \u00a0When writing a WordPress plugin, development shops find that the productivity and quality assurance tools they are accustomed to their MVC framework providing are conspicuously absent. \u00a0This session will evaluate the trade-offs inherent in this dilemma and offer some solutions that empower developers to maintain a high-quality user experience while implementing features that off-the-shelf WordPress isn&#8217;t suitable for.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Speaker: Brad Griffith Read our Interview with Brad Griffith Follow him online: Session Description: When you can&#8217;t accomplish your project&#8217;s goals with custom post types and a custom theme, you have two options available: 1) write a separate application in a large MVC framework, or 2) develop a WordPress plugin that augments the built-in functionality [&hellip;]<\/p>\n","protected":false},"author":11544525,"featured_media":0,"template":"","meta":{"jetpack_post_was_ever_published":false,"_wcpt_session_time":1372516200,"_wcpt_session_duration":3000,"_wcpt_session_type":"session","_wcpt_session_slides":"","_wcpt_session_video":"","_wcpt_speaker_id":[1366],"footnotes":""},"session_track":[155858],"session_category":[],"class_list":["post-1365","wcb_session","type-wcb_session","status-publish","hentry","wcb_track-engineer"],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p31ZWq-m1","jetpack_likes_enabled":true,"session_date_time":{"date":"June 29, 2013","time":"9:30 am"},"session_speakers":[{"id":"1366","slug":"brad-griffith","name":"Brad Griffith","link":"https:\/\/chicago.wordcamp.org\/2013\/speaker\/brad-griffith\/"}],"session_cats_rendered":null,"_links":{"self":[{"href":"https:\/\/chicago.wordcamp.org\/2013\/wp-json\/wp\/v2\/sessions\/1365","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chicago.wordcamp.org\/2013\/wp-json\/wp\/v2\/sessions"}],"about":[{"href":"https:\/\/chicago.wordcamp.org\/2013\/wp-json\/wp\/v2\/types\/wcb_session"}],"author":[{"embeddable":true,"href":"https:\/\/chicago.wordcamp.org\/2013\/wp-json\/wp\/v2\/users\/11544525"}],"version-history":[{"count":6,"href":"https:\/\/chicago.wordcamp.org\/2013\/wp-json\/wp\/v2\/sessions\/1365\/revisions"}],"predecessor-version":[{"id":2894,"href":"https:\/\/chicago.wordcamp.org\/2013\/wp-json\/wp\/v2\/sessions\/1365\/revisions\/2894"}],"speakers":[{"embeddable":true,"href":"https:\/\/chicago.wordcamp.org\/2013\/wp-json\/wp\/v2\/speakers\/1366"}],"wp:attachment":[{"href":"https:\/\/chicago.wordcamp.org\/2013\/wp-json\/wp\/v2\/media?parent=1365"}],"wp:term":[{"taxonomy":"wcb_track","embeddable":true,"href":"https:\/\/chicago.wordcamp.org\/2013\/wp-json\/wp\/v2\/session_track?post=1365"},{"taxonomy":"wcb_session_category","embeddable":true,"href":"https:\/\/chicago.wordcamp.org\/2013\/wp-json\/wp\/v2\/session_category?post=1365"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}