{"id":1758,"date":"2019-06-12T05:34:54","date_gmt":"2019-06-12T05:34:54","guid":{"rendered":"https:\/\/2019.denver.wordcamp.org\/?post_type=wcb_session&#038;p=1758"},"modified":"2019-06-12T06:14:17","modified_gmt":"2019-06-12T06:14:17","slug":"workshop-lets-build-our-first-plugin","status":"publish","type":"wcb_session","link":"https:\/\/denver.wordcamp.org\/2019\/session\/workshop-lets-build-our-first-plugin\/","title":{"rendered":"Workshop &#8211; Let\u2019s Build Our First Plugin!"},"content":{"rendered":"<p>If you\u2019ve ever wanted to build your own plugin for WordPress, this is the session for you. We\u2019re going to start from scratch and work our way up.<\/p>\n<p>First, we\u2019ll take a look at the basic requirements of a plugin. Next we\u2019ll take our example plugin idea and break it into the various components and steps that we\u2019ll need. We\u2019ll code up the plugin together and install it on our sites, debugging any problems that arise. Finally, we\u2019ll look at ways that we could further extend our plugin.<\/p>\n<p>This tutorial assumes some HTML and CSS knowledge, but you don\u2019t already need to be familiar with writing PHP or JavaScript.<\/p>\n<p>The steps that we\u2019ll work through include: &#8211; Setting up a folder and PHP file for our plugin &#8211; The plugin file header and what it does &#8211; Creating a README file &#8211; Adding a menu item and sub-menu item in the dashboard for our plugin settings &#8211; Creating a plugin settings page, settings sections, and individual settings with the Settings API &#8211; Using WordPress hooks to enqueue scripts and styles, and display output for the user &#8211; Moving our plugin settings into the WordPress Customizer &#8211; Preparing our plugin for translation and future updates<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you\u2019ve ever wanted to build your own plugin for WordPress, this is the session for you. We\u2019re going to start from scratch and work our way up. First, we\u2019ll take a look at the basic requirements of a plugin. Next we\u2019ll take our example plugin idea and break it into the various components and &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/denver.wordcamp.org\/2019\/session\/workshop-lets-build-our-first-plugin\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Workshop &#8211; Let\u2019s Build Our First Plugin!&#8221;<\/span><\/a><\/p>\n","protected":false},"author":8565992,"featured_media":0,"template":"","meta":{"jetpack_post_was_ever_published":false,"_wcpt_session_time":1564304400,"_wcpt_session_duration":3000,"_wcpt_session_type":"session","_wcpt_session_slides":"","_wcpt_session_video":"","_wcpt_speaker_id":[1803],"footnotes":""},"session_track":[5041,12343],"session_category":[],"class_list":["post-1758","wcb_session","type-wcb_session","status-publish","hentry","wcb_track-developer","wcb_track-workshop"],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pacPWN-sm","session_date_time":{"date":"July 28, 2019","time":"9:00 am"},"session_speakers":[{"id":"1803","slug":"david-wolfpaw","name":"David Wolfpaw","link":"https:\/\/denver.wordcamp.org\/2019\/updates\/speaker\/david-wolfpaw\/"}],"session_cats_rendered":null,"_links":{"self":[{"href":"https:\/\/denver.wordcamp.org\/2019\/wp-json\/wp\/v2\/sessions\/1758","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/denver.wordcamp.org\/2019\/wp-json\/wp\/v2\/sessions"}],"about":[{"href":"https:\/\/denver.wordcamp.org\/2019\/wp-json\/wp\/v2\/types\/wcb_session"}],"author":[{"embeddable":true,"href":"https:\/\/denver.wordcamp.org\/2019\/wp-json\/wp\/v2\/users\/8565992"}],"version-history":[{"count":1,"href":"https:\/\/denver.wordcamp.org\/2019\/wp-json\/wp\/v2\/sessions\/1758\/revisions"}],"predecessor-version":[{"id":1759,"href":"https:\/\/denver.wordcamp.org\/2019\/wp-json\/wp\/v2\/sessions\/1758\/revisions\/1759"}],"speakers":[{"embeddable":true,"href":"https:\/\/denver.wordcamp.org\/2019\/wp-json\/wp\/v2\/speakers\/1803"}],"wp:attachment":[{"href":"https:\/\/denver.wordcamp.org\/2019\/wp-json\/wp\/v2\/media?parent=1758"}],"wp:term":[{"taxonomy":"wcb_track","embeddable":true,"href":"https:\/\/denver.wordcamp.org\/2019\/wp-json\/wp\/v2\/session_track?post=1758"},{"taxonomy":"wcb_session_category","embeddable":true,"href":"https:\/\/denver.wordcamp.org\/2019\/wp-json\/wp\/v2\/session_category?post=1758"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}