{"id":914,"date":"2015-03-29T21:11:05","date_gmt":"2015-03-29T21:11:05","guid":{"rendered":"https:\/\/2015.minneapolis.wordcamp.org\/?post_type=wcb_session&#038;p=914"},"modified":"2015-03-30T02:30:38","modified_gmt":"2015-03-30T02:30:38","slug":"creating-usable-maintainable-and-upgradable-wordpress-sites","status":"publish","type":"wcb_session","link":"https:\/\/minneapolis.wordcamp.org\/2015\/session\/creating-usable-maintainable-and-upgradable-wordpress-sites\/","title":{"rendered":"Creating usable, maintainable, and upgradable WordPress sites"},"content":{"rendered":"<p>You&#8217;ll find thousands of tutorials, snippets, and other advice online advising you to &#8220;just add this to your functions.php file.&#8221;<\/p>\n<p>It&#8217;s a bit more complicated than that&#8230;<\/p>\n<h4>I\u2019ll cover:<\/h4>\n<ul>\n<li>Why that&#8217;s rarely the best strategy for anyone (yes, even a non-technical user)<\/li>\n<li>Why developers and designers should never do this on client sites<\/li>\n<li>What best practices are regarding adding custom functionality to your site<\/li>\n<li>Tools for users of all levels to avoid functions.php bloat<\/li>\n<\/ul>\n<h4>I&#8217;ll also cover:<\/h4>\n<ul>\n<li>Why &#8220;app themes&#8221; are probably a bad way to start a business\/website<\/li>\n<li>Which code belongs in plugins vs. themes<\/li>\n<li>How using a theme framework\/starter theme can save you hassles and headaches<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>You&#8217;ll find thousands of tutorials, snippets, and other advice online advising you to &#8220;just add this to your functions.php file.&#8221; It&#8217;s a bit more complicated than that&#8230; I\u2019ll cover: Why that&#8217;s rarely the best strategy for anyone (yes, even a non-technical user) Why developers and designers should never do this on client sites What best [&hellip;]<\/p>\n","protected":false},"author":7487400,"featured_media":0,"template":"","meta":{"_wcpt_session_time":1429971300,"_wcpt_session_duration":3000,"_wcpt_session_type":"session","_wcpt_session_slides":"","_wcpt_session_video":"","_wcpt_speaker_id":[645],"footnotes":""},"session_track":[483970,144],"session_category":[],"class_list":["post-914","wcb_session","type-wcb_session","status-publish","hentry","wcb_track-thornton-auditorium-200","wcb_track-development"],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5JjPH-eK","session_date_time":{"date":"April 25, 2015","time":"2:15 pm"},"session_speakers":[{"id":"645","slug":"nick-ciske","name":"Nick Ciske","link":"https:\/\/minneapolis.wordcamp.org\/2015\/speaker\/nick-ciske\/"}],"session_cats_rendered":null,"_links":{"self":[{"href":"https:\/\/minneapolis.wordcamp.org\/2015\/wp-json\/wp\/v2\/sessions\/914","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/minneapolis.wordcamp.org\/2015\/wp-json\/wp\/v2\/sessions"}],"about":[{"href":"https:\/\/minneapolis.wordcamp.org\/2015\/wp-json\/wp\/v2\/types\/wcb_session"}],"version-history":[{"count":2,"href":"https:\/\/minneapolis.wordcamp.org\/2015\/wp-json\/wp\/v2\/sessions\/914\/revisions"}],"predecessor-version":[{"id":992,"href":"https:\/\/minneapolis.wordcamp.org\/2015\/wp-json\/wp\/v2\/sessions\/914\/revisions\/992"}],"speakers":[{"embeddable":true,"href":"https:\/\/minneapolis.wordcamp.org\/2015\/wp-json\/wp\/v2\/speakers\/645"}],"author":[{"embeddable":true,"href":"https:\/\/minneapolis.wordcamp.org\/2015\/wp-json\/wporg\/v1\/users\/nickciske"}],"wp:attachment":[{"href":"https:\/\/minneapolis.wordcamp.org\/2015\/wp-json\/wp\/v2\/media?parent=914"}],"wp:term":[{"taxonomy":"wcb_track","embeddable":true,"href":"https:\/\/minneapolis.wordcamp.org\/2015\/wp-json\/wp\/v2\/session_track?post=914"},{"taxonomy":"wcb_session_category","embeddable":true,"href":"https:\/\/minneapolis.wordcamp.org\/2015\/wp-json\/wp\/v2\/session_category?post=914"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}