{"id":3476,"date":"2017-02-10T13:46:24","date_gmt":"2017-02-10T13:46:24","guid":{"rendered":"http:\/\/2017.miami.wordcamp.org\/?post_type=wcb_session&#038;p=3476"},"modified":"2017-02-21T02:41:46","modified_gmt":"2017-02-21T02:41:46","slug":"a-php-developers-adventures-in-react-building-plugin-admin-interfaces","status":"publish","type":"wcb_session","link":"https:\/\/miami.wordcamp.org\/2017\/session\/a-php-developers-adventures-in-react-building-plugin-admin-interfaces\/","title":{"rendered":"A PHP Developer\u2019s Adventures in React : Building Plugin Admin Interfaces"},"content":{"rendered":"<p>Just about any moderately complex WordPress plugin requires some sort of administrative interface. In many cases, your code for this UI could benefit from the flexibility and power provided by the React JavaScript library, but integrating React with the WordPress admin brings its own set of challenges. From developer tools, to data persistence, to extensibility, we\u2019ll explore some of these challenges and the solutions we\u2019ve developed at Modern Tribe as we\u2019ve used React to build elegant administrative user experiences in WordPress.<\/p>\n<p>Making React applications play nicely with the WordPress admin involves a number of tricks and workarounds. I\u2019ll cover topics such as integration with the TinyMCE editor, communication with WP\u2019s existing JS libraries, setting up developer tools such as hot module reloading, and persisting data in the WP database.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Just about any moderately complex WordPress plugin requires some sort of administrative interface. In many cases, your code for this UI could benefit from the flexibility and power provided by the React JavaScript library, but integrating React with the WordPress admin brings its own set of challenges. From developer tools, to data persistence, to extensibility, &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/miami.wordcamp.org\/2017\/session\/a-php-developers-adventures-in-react-building-plugin-admin-interfaces\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;A PHP Developer\u2019s Adventures in React : Building Plugin Admin Interfaces&#8221;<\/span><\/a><\/p>\n","protected":false},"author":23114,"featured_media":0,"template":"","meta":{"jetpack_post_was_ever_published":false,"_wcpt_session_time":1490553000,"_wcpt_session_duration":3000,"_wcpt_session_type":"session","_wcpt_session_slides":"","_wcpt_session_video":"","_wcpt_speaker_id":[3812],"footnotes":""},"session_track":[732335],"session_category":[],"class_list":["post-3476","wcb_session","type-wcb_session","status-publish","hentry","wcb_track-learning-javascript-deeply"],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p7Pp75-U4","session_date_time":{"date":"March 26, 2017","time":"1:30 pm"},"session_speakers":[{"id":"3812","slug":"jonathan-brinley","name":"Jonathan Brinley","link":"https:\/\/miami.wordcamp.org\/2017\/speaker\/jonathan-brinley\/"}],"session_cats_rendered":null,"_links":{"self":[{"href":"https:\/\/miami.wordcamp.org\/2017\/wp-json\/wp\/v2\/sessions\/3476","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/miami.wordcamp.org\/2017\/wp-json\/wp\/v2\/sessions"}],"about":[{"href":"https:\/\/miami.wordcamp.org\/2017\/wp-json\/wp\/v2\/types\/wcb_session"}],"author":[{"embeddable":true,"href":"https:\/\/miami.wordcamp.org\/2017\/wp-json\/wp\/v2\/users\/23114"}],"version-history":[{"count":2,"href":"https:\/\/miami.wordcamp.org\/2017\/wp-json\/wp\/v2\/sessions\/3476\/revisions"}],"predecessor-version":[{"id":3817,"href":"https:\/\/miami.wordcamp.org\/2017\/wp-json\/wp\/v2\/sessions\/3476\/revisions\/3817"}],"speakers":[{"embeddable":true,"href":"https:\/\/miami.wordcamp.org\/2017\/wp-json\/wp\/v2\/speakers\/3812"}],"wp:attachment":[{"href":"https:\/\/miami.wordcamp.org\/2017\/wp-json\/wp\/v2\/media?parent=3476"}],"wp:term":[{"taxonomy":"wcb_track","embeddable":true,"href":"https:\/\/miami.wordcamp.org\/2017\/wp-json\/wp\/v2\/session_track?post=3476"},{"taxonomy":"wcb_session_category","embeddable":true,"href":"https:\/\/miami.wordcamp.org\/2017\/wp-json\/wp\/v2\/session_category?post=3476"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}