{"id":548,"date":"2019-11-19T18:45:26","date_gmt":"2019-11-19T18:45:26","guid":{"rendered":"https:\/\/2019.kampala.wordcamp.org\/?post_type=wcb_session&#038;p=548"},"modified":"2019-11-19T20:15:54","modified_gmt":"2019-11-19T20:15:54","slug":"wordpress-plugin-development-best-practices","status":"publish","type":"wcb_session","link":"https:\/\/kampala.wordcamp.org\/2019\/session\/wordpress-plugin-development-best-practices\/","title":{"rendered":"WordPress Plugin Development Best Practices"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">WordPress plugins are a major part of what makes the ecosystem the amazing place that it is. Having worked with hundreds of plugins through the years, I&#8217;ve discovered some things that I feel stand out and make some easier to work with and extend while making it a bit harder to work with others.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this talk, I draw from both general software engineering best-practices and from the WordPress world. We get into testing, templating, coding standards, dependency injection, security, extensive use of WordPress&#8217;s in-built capabilities like admin table lists, custom post types and the like. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>WordPress plugins are a major part of what makes the ecosystem the amazing place that it is. Having worked with hundreds of plugins through the years, I&#8217;ve discovered some things that I feel stand out and make some easier to &hellip; <a href=\"https:\/\/kampala.wordcamp.org\/2019\/session\/wordpress-plugin-development-best-practices\/\">Continue reading <span class=\"assistive-text\">WordPress Plugin Development Best Practices<\/span>  <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":9034692,"featured_media":0,"template":"","meta":{"_crdt_document":"","jetpack_post_was_ever_published":false,"_wcpt_session_time":1575192600,"_wcpt_session_duration":3000,"_wcpt_session_type":"session","_wcpt_session_slides":"","_wcpt_session_video":"","_wcpt_speaker_id":[547],"footnotes":""},"session_track":[20],"session_category":[],"class_list":["post-548","wcb_session","type-wcb_session","status-publish","hentry","wcb_track-gym"],"jetpack_sharing_enabled":true,"session_date_time":{"date":"December 1, 2019","time":"9:30 am"},"session_speakers":[{"id":"547","slug":"peter-kakoma","name":"Peter Kakoma","link":"https:\/\/kampala.wordcamp.org\/2019\/speaker\/peter-kakoma\/"}],"session_cats_rendered":null,"_links":{"self":[{"href":"https:\/\/kampala.wordcamp.org\/2019\/wp-json\/wp\/v2\/sessions\/548","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kampala.wordcamp.org\/2019\/wp-json\/wp\/v2\/sessions"}],"about":[{"href":"https:\/\/kampala.wordcamp.org\/2019\/wp-json\/wp\/v2\/types\/wcb_session"}],"version-history":[{"count":1,"href":"https:\/\/kampala.wordcamp.org\/2019\/wp-json\/wp\/v2\/sessions\/548\/revisions"}],"predecessor-version":[{"id":552,"href":"https:\/\/kampala.wordcamp.org\/2019\/wp-json\/wp\/v2\/sessions\/548\/revisions\/552"}],"speakers":[{"embeddable":true,"href":"https:\/\/kampala.wordcamp.org\/2019\/wp-json\/wp\/v2\/speakers\/547"}],"author":[{"embeddable":true,"href":"https:\/\/kampala.wordcamp.org\/2019\/wp-json\/wporg\/v1\/users\/kakomap"}],"wp:attachment":[{"href":"https:\/\/kampala.wordcamp.org\/2019\/wp-json\/wp\/v2\/media?parent=548"}],"wp:term":[{"taxonomy":"wcb_track","embeddable":true,"href":"https:\/\/kampala.wordcamp.org\/2019\/wp-json\/wp\/v2\/session_track?post=548"},{"taxonomy":"wcb_session_category","embeddable":true,"href":"https:\/\/kampala.wordcamp.org\/2019\/wp-json\/wp\/v2\/session_category?post=548"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}