{"id":197,"date":"2011-04-20T02:46:01","date_gmt":"2011-04-20T02:46:01","guid":{"rendered":"https:\/\/2011.montreal.wordcamp.org\/?post_type=wcb_session&#038;p=197"},"modified":"2012-11-21T05:25:42","modified_gmt":"2012-11-21T10:25:42","slug":"plugin-development-demystified","status":"publish","type":"wcb_session","link":"https:\/\/montreal.wordcamp.org\/2011\/session\/plugin-development-demystified\/","title":{"rendered":"Plugin Development Demystified"},"content":{"rendered":"<p><a href=\"http:\/\/yannickcorner.nayanna.biz\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"498\" data-permalink=\"https:\/\/montreal.wordcamp.org\/2011\/session\/plugin-development-demystified\/yannicklefebvre\/\" data-orig-file=\"https:\/\/montreal.wordcamp.org\/2011\/files\/2011\/04\/yannicklefebvre.jpeg\" data-orig-size=\"102,102\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"yannicklefebvre\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/montreal.wordcamp.org\/2011\/files\/2011\/04\/yannicklefebvre.jpeg\" data-large-file=\"https:\/\/montreal.wordcamp.org\/2011\/files\/2011\/04\/yannicklefebvre.jpeg\" class=\"alignleft size-full wp-image-498\" src=\"https:\/\/2011.montreal.wordcamp.org\/files\/2011\/04\/yannicklefebvre.jpeg\" alt=\"\" width=\"102\" height=\"102\" \/><\/a>For many WordPress users, even seasoned PHP developers, creating new plugins for WordPress seems like a daunting task. After talking about specific best practices in plugin development last year, this presentation will take a step back to show attendees how simple creating plugins for WordPress from the ground up can be by looking at the architecture of a WordPress plugin, from the basic concepts of registering actions and filters to more advanced concepts such as the creation of admin pages and registering shortcodes.<\/p>\n<p><em>Some knowledge of PHP preferable. This talk is targeted to advanced users and up-and-coming coders.<\/em><\/p>\n<p><a href=\"http:\/\/www.slideshare.net\/ylefebvre\/wordpress-plugin-development-demystified-8538733\" target=\"_blank\">View slides on Slideshare \u00bb<\/a><\/p>\n<h3>About Yannick<\/h3>\n<p><a href=\"http:\/\/yannickcorner.nayanna.biz\/\" target=\"_blank\">Yannick Lefebvre<\/a> is a tech enthusiast working in the modeling and simulation software industry, I have been blogging since 2003, started using WordPress in 2004 and published my first plugin, Link Library, in March 2005. Since then, I released six other plugins, all hosted on the official WordPress.org site. I absolutely love using WordPress to develop web sites and find PHP to be a most liberating language compared to more traditional languages such as C\/C++.\u00a0Follow <a href=\"http:\/\/twitter.com\/#!\/ylefebvre\" target=\"_blank\">@ylefebvre<\/a> on Twitter.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>For many WordPress users, even seasoned PHP developers, creating new plugins for WordPress seems like a daunting task. After talking about specific best practices in plugin development last year, this presentation will take a step back to show attendees how &hellip; <a href=\"https:\/\/montreal.wordcamp.org\/2011\/session\/plugin-development-demystified\/\">Continue reading <span class=\"screen-reader-text\">Plugin Development Demystified<\/span>  <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":221745,"featured_media":0,"template":"","meta":{"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":[222],"footnotes":""},"session_track":[4632],"session_category":[],"class_list":["post-197","wcb_session","type-wcb_session","status-publish","hentry","wcb_track-designers-developers"],"jetpack_shortlink":"https:\/\/wp.me\/p1qg3v-3b","jetpack_sharing_enabled":true,"session_date_time":{"date":"","time":""},"session_speakers":[{"id":"222","slug":"yannick-lefebvre","name":"Yannick Lefebvre","link":"https:\/\/montreal.wordcamp.org\/2011\/speaker\/yannick-lefebvre\/"}],"session_cats_rendered":null,"_links":{"self":[{"href":"https:\/\/montreal.wordcamp.org\/2011\/wp-json\/wp\/v2\/sessions\/197","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/montreal.wordcamp.org\/2011\/wp-json\/wp\/v2\/sessions"}],"about":[{"href":"https:\/\/montreal.wordcamp.org\/2011\/wp-json\/wp\/v2\/types\/wcb_session"}],"author":[{"embeddable":true,"href":"https:\/\/montreal.wordcamp.org\/2011\/wp-json\/wp\/v2\/users\/221745"}],"version-history":[{"count":14,"href":"https:\/\/montreal.wordcamp.org\/2011\/wp-json\/wp\/v2\/sessions\/197\/revisions"}],"predecessor-version":[{"id":1395,"href":"https:\/\/montreal.wordcamp.org\/2011\/wp-json\/wp\/v2\/sessions\/197\/revisions\/1395"}],"speakers":[{"embeddable":true,"href":"https:\/\/montreal.wordcamp.org\/2011\/wp-json\/wp\/v2\/speakers\/222"}],"wp:attachment":[{"href":"https:\/\/montreal.wordcamp.org\/2011\/wp-json\/wp\/v2\/media?parent=197"}],"wp:term":[{"taxonomy":"wcb_track","embeddable":true,"href":"https:\/\/montreal.wordcamp.org\/2011\/wp-json\/wp\/v2\/session_track?post=197"},{"taxonomy":"wcb_session_category","embeddable":true,"href":"https:\/\/montreal.wordcamp.org\/2011\/wp-json\/wp\/v2\/session_category?post=197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}