{"id":440,"date":"2019-06-25T17:36:03","date_gmt":"2019-06-25T15:36:03","guid":{"rendered":"https:\/\/2019.capetown.wordcamp.org\/?post_type=wcb_session&#038;p=440"},"modified":"2019-09-11T11:45:56","modified_gmt":"2019-09-11T09:45:56","slug":"how-to-develop-gutenberg-blocks","status":"publish","type":"wcb_session","link":"https:\/\/capetown.wordcamp.org\/2019\/session\/how-to-develop-gutenberg-blocks\/","title":{"rendered":"How to develop Gutenberg blocks"},"content":{"rendered":"\n<p>I used to do a lot of custom WordPress development in php, but recently a major shift has been required to allow for the custom development of Gutenberg Blocks. I&#8217;ll share how to build and test a plugin locally that creates custom Gutenberg Blocks using React and Node, compiling it down to upload to a site for use. Sections of the workshop would\/could include: Setting up\/using a local wordpress installation, installing node and using a boilerplate install to get started with developing blocks. Styling blocks in the editor and the front end. Adding attributes\/editable fields. Using APIs to call data from wordpress such as posts\/taxonomies etc.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I used to do a lot of custom WordPress development in php, but recently a major shift has been required to allow for the custom development of Gutenberg Blocks. I&#8217;ll share how to build and test a plugin locally that creates custom Gutenberg Blocks using React and Node, compiling it down to upload to a [&hellip;]<\/p>\n","protected":false},"author":15759911,"featured_media":0,"template":"","meta":{"jetpack_post_was_ever_published":false,"_wcpt_session_time":1569489300,"_wcpt_session_duration":3000,"_wcpt_session_type":"session","_wcpt_session_slides":"","_wcpt_session_video":"","_wcpt_speaker_id":[439],"footnotes":""},"session_track":[13412],"session_category":[],"class_list":["post-440","wcb_session","type-wcb_session","status-publish","hentry","wcb_track-track-2"],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/paxzxl-76","session_date_time":{"date":"September 26, 2019","time":"11:15 am"},"session_speakers":[{"id":"439","slug":"lyle-bennett","name":"Lyle Bennett","link":"https:\/\/capetown.wordcamp.org\/2019\/speaker\/lyle-bennett\/"}],"session_cats_rendered":null,"_links":{"self":[{"href":"https:\/\/capetown.wordcamp.org\/2019\/wp-json\/wp\/v2\/sessions\/440","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/capetown.wordcamp.org\/2019\/wp-json\/wp\/v2\/sessions"}],"about":[{"href":"https:\/\/capetown.wordcamp.org\/2019\/wp-json\/wp\/v2\/types\/wcb_session"}],"version-history":[{"count":1,"href":"https:\/\/capetown.wordcamp.org\/2019\/wp-json\/wp\/v2\/sessions\/440\/revisions"}],"predecessor-version":[{"id":991,"href":"https:\/\/capetown.wordcamp.org\/2019\/wp-json\/wp\/v2\/sessions\/440\/revisions\/991"}],"speakers":[{"embeddable":true,"href":"https:\/\/capetown.wordcamp.org\/2019\/wp-json\/wp\/v2\/speakers\/439"}],"author":[{"embeddable":true,"href":"https:\/\/capetown.wordcamp.org\/2019\/wp-json\/wporg\/v1\/users\/lbwbx"}],"wp:attachment":[{"href":"https:\/\/capetown.wordcamp.org\/2019\/wp-json\/wp\/v2\/media?parent=440"}],"wp:term":[{"taxonomy":"wcb_track","embeddable":true,"href":"https:\/\/capetown.wordcamp.org\/2019\/wp-json\/wp\/v2\/session_track?post=440"},{"taxonomy":"wcb_session_category","embeddable":true,"href":"https:\/\/capetown.wordcamp.org\/2019\/wp-json\/wp\/v2\/session_category?post=440"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}