SlideShare une entreprise Scribd logo
1  sur  64
Télécharger pour lire hors ligne
Fast 1
Fast
Understanding the
first steps to
becoming a
Gutenberg
developer
Demystifying
Gutenberg Blocks
Fast 2
Fast
01
02
03
04
05
06
Introduction
Before you begin
Start with something familiar
Know what you don’t know
MVP
What’s next?
Fast 3
Fast
Introduction
● Cory Webb
● Waco, TX
● Software Engineer, Fast
● Previously at Reaktiv
Fast 4
Fast
Introduction
● Cory Webb
● Waco, TX
● Software Engineer, Fast
● Previously at Reaktiv
Fast 5
Fast
Introduction
● Cory Webb
● Waco, TX
● Software Engineer, Fast
● Previously at Reaktiv
Fast 6
Fast
Introduction
● Cory Webb
● Waco, TX
● Software Engineer, Fast
● Previously at Reaktiv
Fast 7
Fast
Before you begin
● Know your “why”
● See what’s available
Fast 8
Fast
Before you begin
● Know your “why”
● See what’s available
Fast 9
Fast
Before you begin
● Know your “why”
● See what’s available
Genesis Blocks, CoBlocks, Stackable, Ultimate Addons for Gutenberg, Otter Blocks, Ultimate Blocks, Kadence Blocks, and PublishPress Blocks
Fast 10
Fast
Start with something
familiar
● Genesis Custom Blocks
● ACF Blocks
● Create Block
Fast 11
Fast
Start with something
familiar
● Genesis Custom Blocks
● ACF Blocks
● Create Block
Fast 12
Fast
Start with something
familiar
● Genesis Custom Blocks
● ACF Blocks
● Create Block
Fast 13
Fast
Start with something
familiar
● Genesis Custom Blocks
● ACF Blocks
● Create Block
Fast 14
Fast
Know what you
don’t know
● Need to Know
● Good to Know
● Learn as you Grow
Fast 15
Fast
Need to Know
● Underlying Technology
● Load and Register Block Types
● Add Block Components
● Props and Attributes
Fast 16
Fast
Underlying Technology
● Node.js & npm
● @wordpress/scripts
● Dependencies
● React
● JSX & ES6
Fast 17
Fast
Underlying Technology
● Node.js & npm
● @wordpress/scripts
● Dependencies
● React
● JSX & ES6
Fast 18
Fast
Underlying Technology
● Node.js & npm
● @wordpress/scripts
● Dependencies
● React
● JSX & ES6
● @wordpress/blocks
● @wordpress/block-editor
● @wordpress/components
● @wordpress/i18n
● @wordpress/element
● @wordpress/editor
Fast 19
Fast
Underlying Technology
● Node.js & npm
● @wordpress/scripts
● Dependencies
● React
● JSX & ES6
Fast 20
Fast
Underlying Technology
● Node.js & npm
● @wordpress/scripts
● Dependencies
● React
● JSX & ES6
● React for Beginners by Wes Bos
● React Explained by Zac Gordon
Fast 21
Fast
Underlying Technology
● Node.js & npm
● @wordpress/scripts
● Dependencies
● React
● JSX & ES6
Fast 22
Fast
Load and Register
Block Types
● The New Way
● The Old Way
Fast 23
Fast
Load and Register
Block Types
● The New Way
● The Old Way
block.json
Fast 24
Fast
Load and Register
Block Types
● The New Way
● The Old Way
register_block_type( __DIR__ );
Fast 25
Fast
Load and Register
Block Types
● The New Way
● The Old Way
registerBlockType( blockName, blockConfig );
Fast 26
Fast
Load and Register
Block Types
● The New Way
● The Old Way
enqueue_block_editor_assets
Fast 27
Fast
Load and Register
Block Types
● The New Way
● The Old Way
registerBlockType( blockName, blockConfig );
Fast 28
Fast
Need to Know
● Underlying Technology
● Load and Register Block Types
● Add Block Components
● Props and Attributes
Fast 29
Fast
Need to Know
● Underlying Technology
● Load and Register Block Types
● Add Block Components
● Props and Attributes
InspectorControls
Fast 30
Fast
Need to Know
● Underlying Technology
● Load and Register Block Types
● Add Block Components
● Props and Attributes
BlockControls
Fast 31
Fast
Need to Know
● Underlying Technology
● Load and Register Block Types
● Add Block Components
● Props and Attributes
Fast 32
Fast
Need to Know
● Underlying Technology
● Load and Register Block Types
● Add Block Components
● Props and Attributes
Fast 33
Fast
Good to Know
● Editor Assets vs Frontend Assets
● Dynamic Blocks and
ServerSideRender
● Internationalization (i18n)
● isSelected
Fast 34
Fast
Good to Know
● Editor Assets vs Frontend Assets
● Dynamic Blocks and
ServerSideRender
● Internationalization (i18n)
● isSelected
● Editor Assets
enqueue_block_editor_assets
● Frontend Assets
wp_enqueue_scripts
Fast 35
Fast
Good to Know
● Editor Assets vs Frontend Assets
● Dynamic Blocks and
ServerSideRender
● Internationalization (i18n)
● isSelected
Fast 36
Fast
Good to Know
● Editor Assets vs Frontend Assets
● Dynamic Blocks and
ServerSideRender
● Internationalization (i18n)
● isSelected
Fast 37
Fast
Good to Know
● Editor Assets vs Frontend Assets
● Dynamic Blocks and
ServerSideRender
● Internationalization (i18n)
● isSelected
Fast 38
Fast
Good to Know
● Editor Assets vs Frontend Assets
● Dynamic Blocks and
ServerSideRender
● Internationalization (i18n)
● isSelected
Fast 39
Fast
Learn as you Grow
● @wordpress/data
● Plugins Sidebars
Fast 40
Fast
Learn as you Grow
● @wordpress/data
● Plugins Sidebars
Fast 41
Fast
Learn as you Grow
● @wordpress/data
● Plugins Sidebars
Fast 42
Fast
MVP
● Set up a local development
environment
● Let’s use Create Block
● Add some Attributes and
Components
● Build & Voila
● GitHub
Fast 43
Fast
MVP
● Set up a local development
environment
● Let’s use Create Block
● Add some Attributes and
Components
● Build & Voila
● GitHub
● Easy
○ Local by Flywheel
○ DevKinsta by Kinsta
● Intermediate
○ MAMP
○ XAMPP
● Advanced
○ VVV
○ Docker
Fast 44
Fast
MVP
● Set up a local development
environment
● Let’s use Create Block
● Add some Attributes and
Components
● Build & Voila
● GitHub source: https://www.npmjs.com/package/@wordpress/create-block
npx @wordpress/create-block
Fast 45
Fast
MVP
● Set up a local development
environment
● Let’s use Create Block
● Add some Attributes and
Components
● Build & Voila
● GitHub mvp-block.php
Fast 46
Fast
MVP
● Set up a local development
environment
● Let’s use Create Block
● Add some Attributes and
Components
● Build & Voila
● GitHub block.json
Fast 47
Fast
MVP
● Set up a local development
environment
● Let’s use Create Block
● Add some Attributes and
Components
● Build & Voila
● GitHub src/index.js
Fast 48
Fast
MVP
● Set up a local development
environment
● Let’s use Create Block
● Add some Attributes and
Components
● Build & Voila
● GitHub src/edit.js
Fast 49
Fast
MVP
● Set up a local development
environment
● Let’s use Create Block
● Add some Attributes and
Components
● Build & Voila
● GitHub src/save.js
Fast 50
Fast
MVP
● Set up a local development
environment
● Let’s use Create Block
● Add some Attributes and
Components
● Build & Voila
● GitHub
Fast 51
Fast
MVP
● Set up a local development
environment
● Let’s use Create Block
● Add some Attributes and
Components
● Build & Voila
● GitHub
Fast 52
Fast
MVP
● Set up a local development
environment
● Let’s use Create Block
● Add some Attributes and
Components
● Build & Voila
● GitHub
import { RichText } from ‘@wordpress/block-editor’;
import blockEditor from ‘@wordpress/block-editor’;
const RichText = blockEditor.RichText;
const { RichText } = wp.blockEditor;
Fast 53
Fast
MVP
● Set up a local development
environment
● Let’s use Create Block
● Add some Attributes and
Components
● Build & Voila
● GitHub
Fast 54
Fast
MVP
● Set up a local development
environment
● Let’s use Create Block
● Add some Attributes and
Components
● Build & Voila
● GitHub
Fast 55
Fast
MVP
● Set up a local development
environment
● Let’s use Create Block
● Add some Attributes and
Components
● Build & Voila
● GitHub
Fast 56
Fast
MVP
● Set up a local development
environment
● Let’s use Create Block
● Add some Attributes and
Components
● Build & Voila
● GitHub
Fast 57
Fast
MVP
● Set up a local development
environment
● Let’s use Create Block
● Add some Attributes and
Components
● Build & Voila
● GitHub
Fast 58
Fast
MVP
● Set up a local development
environment
● Let’s use Create Block
● Add some Attributes and
Components
● Build & Voila
● GitHub
Fast 59
Fast
MVP
● Set up a local development
environment
● Let’s use Create Block
● Add some Attributes and
Components
● Build & Voila
● GitHub
https://github.com/corywebb/wcus-mvp
Fast 60
Fast
What’s Next?
● Extend the MVP
● Share With the World
● Keep Learning
Fast 61
Fast
What’s Next?
● Extend the MVP
● Share With the World
● Keep Learning
Fast 62
Fast
What’s Next?
● Extend the MVP
● Share With the World
● Keep Learning
Fast 63
Fast
What’s Next?
● Extend the MVP
● Share With the World
● Keep Learning
Questions?
Fast Confidential & Proprietary 64
@corywebb

Contenu connexe

Tendances

Eclipse Orion: The IDE in the Clouds (JavaOne 2013)
Eclipse Orion: The IDE in the Clouds (JavaOne 2013)Eclipse Orion: The IDE in the Clouds (JavaOne 2013)
Eclipse Orion: The IDE in the Clouds (JavaOne 2013)
Murat Yener
 

Tendances (20)

Groovy and noteworthy
Groovy and noteworthyGroovy and noteworthy
Groovy and noteworthy
 
Buildr - build like you code
Buildr -  build like you codeBuildr -  build like you code
Buildr - build like you code
 
ITB2016 ContentBox CMS for a perfect project fit
ITB2016   ContentBox CMS for a perfect project fitITB2016   ContentBox CMS for a perfect project fit
ITB2016 ContentBox CMS for a perfect project fit
 
Git sourcecontrolpreso
Git sourcecontrolpresoGit sourcecontrolpreso
Git sourcecontrolpreso
 
WordPress as a Headless CMS - Bronson Quick
WordPress as a Headless CMS - Bronson QuickWordPress as a Headless CMS - Bronson Quick
WordPress as a Headless CMS - Bronson Quick
 
wp-cli and plugin development with future and past compatibility (Word Camp P...
wp-cli and plugin development with future and past compatibility (Word Camp P...wp-cli and plugin development with future and past compatibility (Word Camp P...
wp-cli and plugin development with future and past compatibility (Word Camp P...
 
ITB2016 Converting Legacy Apps into Modern MVC
ITB2016 Converting Legacy Apps into Modern MVCITB2016 Converting Legacy Apps into Modern MVC
ITB2016 Converting Legacy Apps into Modern MVC
 
Friction Logging and Internal Advocacy, DevRel/Asia 2020
Friction Logging and Internal Advocacy, DevRel/Asia 2020Friction Logging and Internal Advocacy, DevRel/Asia 2020
Friction Logging and Internal Advocacy, DevRel/Asia 2020
 
Windows brings Docker Goodness - What does it mean for .NET developers?
Windows brings Docker Goodness - What does it mean for .NET developers?Windows brings Docker Goodness - What does it mean for .NET developers?
Windows brings Docker Goodness - What does it mean for .NET developers?
 
Introduction to React
Introduction to ReactIntroduction to React
Introduction to React
 
Saigon Wordpress Meetup - Best practices for plugin development - A WordPress...
Saigon Wordpress Meetup - Best practices for plugin development - A WordPress...Saigon Wordpress Meetup - Best practices for plugin development - A WordPress...
Saigon Wordpress Meetup - Best practices for plugin development - A WordPress...
 
The state of Jenkins pipelines or do I still need freestyle jobs
The state of Jenkins pipelines or do I still need freestyle jobsThe state of Jenkins pipelines or do I still need freestyle jobs
The state of Jenkins pipelines or do I still need freestyle jobs
 
Testing in GO
Testing in GOTesting in GO
Testing in GO
 
How do I Write Testable Javascript so I can Test my CF API on Server and Client
How do I Write Testable Javascript so I can Test my CF API on Server and ClientHow do I Write Testable Javascript so I can Test my CF API on Server and Client
How do I Write Testable Javascript so I can Test my CF API on Server and Client
 
Desarrollo web backend: Spring Boot, MongoDB y Azure
Desarrollo web backend: Spring Boot, MongoDB y AzureDesarrollo web backend: Spring Boot, MongoDB y Azure
Desarrollo web backend: Spring Boot, MongoDB y Azure
 
.Git for WordPress Developers
.Git for WordPress Developers.Git for WordPress Developers
.Git for WordPress Developers
 
Untangling spring week12
Untangling spring week12Untangling spring week12
Untangling spring week12
 
Eclipse Orion: The IDE in the Clouds (JavaOne 2013)
Eclipse Orion: The IDE in the Clouds (JavaOne 2013)Eclipse Orion: The IDE in the Clouds (JavaOne 2013)
Eclipse Orion: The IDE in the Clouds (JavaOne 2013)
 
Front end workflow
Front end workflow Front end workflow
Front end workflow
 
AN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLE
AN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLEAN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLE
AN EXERCISE IN CLEANER CODE - FROM LEGACY TO MAINTAINABLE
 

Similaire à Demystifying Gutenberg Blocks - Understanding the first steps to becoming a Gutenberg developer

Similaire à Demystifying Gutenberg Blocks - Understanding the first steps to becoming a Gutenberg developer (20)

Java Web Start czyli jak żyć z tą dziwną technologią & Continuous Delivery w ...
Java Web Start czyli jak żyć z tą dziwną technologią & Continuous Delivery w ...Java Web Start czyli jak żyć z tą dziwną technologią & Continuous Delivery w ...
Java Web Start czyli jak żyć z tą dziwną technologią & Continuous Delivery w ...
 
Application Deployment at UC Riverside
Application Deployment at UC RiversideApplication Deployment at UC Riverside
Application Deployment at UC Riverside
 
GeoServer Developers Workshop
GeoServer Developers WorkshopGeoServer Developers Workshop
GeoServer Developers Workshop
 
Java Web Start czyli jak żyć z tą dziwną technologią? & Continuous Delivery w...
Java Web Start czyli jak żyć z tą dziwną technologią? & Continuous Delivery w...Java Web Start czyli jak żyć z tą dziwną technologią? & Continuous Delivery w...
Java Web Start czyli jak żyć z tą dziwną technologią? & Continuous Delivery w...
 
Jbake workshop (Greach 2019)
Jbake workshop (Greach 2019)Jbake workshop (Greach 2019)
Jbake workshop (Greach 2019)
 
Do You Get Git?
Do You Get Git? Do You Get Git?
Do You Get Git?
 
[WroclawJUG] Continuous Delivery in OSS using Shipkit
[WroclawJUG] Continuous Delivery in OSS using Shipkit[WroclawJUG] Continuous Delivery in OSS using Shipkit
[WroclawJUG] Continuous Delivery in OSS using Shipkit
 
Developing word press professionally
Developing word press professionallyDeveloping word press professionally
Developing word press professionally
 
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
 
Continuous Delivery in OSS using Shipkit.org
Continuous Delivery in OSS using Shipkit.orgContinuous Delivery in OSS using Shipkit.org
Continuous Delivery in OSS using Shipkit.org
 
A Crash Course in WordPress Gutenberg
A Crash Course in WordPress GutenbergA Crash Course in WordPress Gutenberg
A Crash Course in WordPress Gutenberg
 
jQuery Conference Austin Sept 2013
jQuery Conference Austin Sept 2013jQuery Conference Austin Sept 2013
jQuery Conference Austin Sept 2013
 
Do This, Don't Do That: A Primer on Sitecore Development
Do This, Don't Do That: A Primer on Sitecore DevelopmentDo This, Don't Do That: A Primer on Sitecore Development
Do This, Don't Do That: A Primer on Sitecore Development
 
Enforcing Bespoke Policies in Kubernetes
Enforcing Bespoke Policies in KubernetesEnforcing Bespoke Policies in Kubernetes
Enforcing Bespoke Policies in Kubernetes
 
My talk at LVEE 2016
My talk at LVEE 2016My talk at LVEE 2016
My talk at LVEE 2016
 
Robot Framework
Robot FrameworkRobot Framework
Robot Framework
 
Nagpur Mulesoft Meetup on CICD using Jenkins
Nagpur Mulesoft Meetup on CICD using JenkinsNagpur Mulesoft Meetup on CICD using Jenkins
Nagpur Mulesoft Meetup on CICD using Jenkins
 
A Schema Migration Tool for the Neo4j Database(Pavel_Kutac).pptx
A Schema Migration Tool for the Neo4j Database(Pavel_Kutac).pptxA Schema Migration Tool for the Neo4j Database(Pavel_Kutac).pptx
A Schema Migration Tool for the Neo4j Database(Pavel_Kutac).pptx
 
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...
 
Developing Blocks without React - Controls.pptx
Developing Blocks without React - Controls.pptxDeveloping Blocks without React - Controls.pptx
Developing Blocks without React - Controls.pptx
 

Dernier

Jax, FL Admin Community Group 05.14.2024 Combined Deck
Jax, FL Admin Community Group 05.14.2024 Combined DeckJax, FL Admin Community Group 05.14.2024 Combined Deck
Jax, FL Admin Community Group 05.14.2024 Combined Deck
Marc Lester
 

Dernier (20)

Microsoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMicrosoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdf
 
Abortion Clinic In Polokwane ](+27832195400*)[ 🏥 Safe Abortion Pills in Polok...
Abortion Clinic In Polokwane ](+27832195400*)[ 🏥 Safe Abortion Pills in Polok...Abortion Clinic In Polokwane ](+27832195400*)[ 🏥 Safe Abortion Pills in Polok...
Abortion Clinic In Polokwane ](+27832195400*)[ 🏥 Safe Abortion Pills in Polok...
 
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
 
how-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfhow-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdf
 
A Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfA Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdf
 
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
 
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
Auto Affiliate  AI Earns First Commission in 3 Hours..pdfAuto Affiliate  AI Earns First Commission in 3 Hours..pdf
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
 
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
 
Jax, FL Admin Community Group 05.14.2024 Combined Deck
Jax, FL Admin Community Group 05.14.2024 Combined DeckJax, FL Admin Community Group 05.14.2024 Combined Deck
Jax, FL Admin Community Group 05.14.2024 Combined Deck
 
Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?Prompt Engineering - an Art, a Science, or your next Job Title?
Prompt Engineering - an Art, a Science, or your next Job Title?
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
 
^Clinic ^%[+27788225528*Abortion Pills For Sale In soweto
^Clinic ^%[+27788225528*Abortion Pills For Sale In soweto^Clinic ^%[+27788225528*Abortion Pills For Sale In soweto
^Clinic ^%[+27788225528*Abortion Pills For Sale In soweto
 
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCAOpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
 
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
 
Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea Goulet
 
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdfThe Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
 
Lessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfLessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdf
 
Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...
Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...
Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...
 
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
 
The Strategic Impact of Buying vs Building in Test Automation
The Strategic Impact of Buying vs Building in Test AutomationThe Strategic Impact of Buying vs Building in Test Automation
The Strategic Impact of Buying vs Building in Test Automation
 

Demystifying Gutenberg Blocks - Understanding the first steps to becoming a Gutenberg developer

  • 1. Fast 1 Fast Understanding the first steps to becoming a Gutenberg developer Demystifying Gutenberg Blocks
  • 2. Fast 2 Fast 01 02 03 04 05 06 Introduction Before you begin Start with something familiar Know what you don’t know MVP What’s next?
  • 3. Fast 3 Fast Introduction ● Cory Webb ● Waco, TX ● Software Engineer, Fast ● Previously at Reaktiv
  • 4. Fast 4 Fast Introduction ● Cory Webb ● Waco, TX ● Software Engineer, Fast ● Previously at Reaktiv
  • 5. Fast 5 Fast Introduction ● Cory Webb ● Waco, TX ● Software Engineer, Fast ● Previously at Reaktiv
  • 6. Fast 6 Fast Introduction ● Cory Webb ● Waco, TX ● Software Engineer, Fast ● Previously at Reaktiv
  • 7. Fast 7 Fast Before you begin ● Know your “why” ● See what’s available
  • 8. Fast 8 Fast Before you begin ● Know your “why” ● See what’s available
  • 9. Fast 9 Fast Before you begin ● Know your “why” ● See what’s available Genesis Blocks, CoBlocks, Stackable, Ultimate Addons for Gutenberg, Otter Blocks, Ultimate Blocks, Kadence Blocks, and PublishPress Blocks
  • 10. Fast 10 Fast Start with something familiar ● Genesis Custom Blocks ● ACF Blocks ● Create Block
  • 11. Fast 11 Fast Start with something familiar ● Genesis Custom Blocks ● ACF Blocks ● Create Block
  • 12. Fast 12 Fast Start with something familiar ● Genesis Custom Blocks ● ACF Blocks ● Create Block
  • 13. Fast 13 Fast Start with something familiar ● Genesis Custom Blocks ● ACF Blocks ● Create Block
  • 14. Fast 14 Fast Know what you don’t know ● Need to Know ● Good to Know ● Learn as you Grow
  • 15. Fast 15 Fast Need to Know ● Underlying Technology ● Load and Register Block Types ● Add Block Components ● Props and Attributes
  • 16. Fast 16 Fast Underlying Technology ● Node.js & npm ● @wordpress/scripts ● Dependencies ● React ● JSX & ES6
  • 17. Fast 17 Fast Underlying Technology ● Node.js & npm ● @wordpress/scripts ● Dependencies ● React ● JSX & ES6
  • 18. Fast 18 Fast Underlying Technology ● Node.js & npm ● @wordpress/scripts ● Dependencies ● React ● JSX & ES6 ● @wordpress/blocks ● @wordpress/block-editor ● @wordpress/components ● @wordpress/i18n ● @wordpress/element ● @wordpress/editor
  • 19. Fast 19 Fast Underlying Technology ● Node.js & npm ● @wordpress/scripts ● Dependencies ● React ● JSX & ES6
  • 20. Fast 20 Fast Underlying Technology ● Node.js & npm ● @wordpress/scripts ● Dependencies ● React ● JSX & ES6 ● React for Beginners by Wes Bos ● React Explained by Zac Gordon
  • 21. Fast 21 Fast Underlying Technology ● Node.js & npm ● @wordpress/scripts ● Dependencies ● React ● JSX & ES6
  • 22. Fast 22 Fast Load and Register Block Types ● The New Way ● The Old Way
  • 23. Fast 23 Fast Load and Register Block Types ● The New Way ● The Old Way block.json
  • 24. Fast 24 Fast Load and Register Block Types ● The New Way ● The Old Way register_block_type( __DIR__ );
  • 25. Fast 25 Fast Load and Register Block Types ● The New Way ● The Old Way registerBlockType( blockName, blockConfig );
  • 26. Fast 26 Fast Load and Register Block Types ● The New Way ● The Old Way enqueue_block_editor_assets
  • 27. Fast 27 Fast Load and Register Block Types ● The New Way ● The Old Way registerBlockType( blockName, blockConfig );
  • 28. Fast 28 Fast Need to Know ● Underlying Technology ● Load and Register Block Types ● Add Block Components ● Props and Attributes
  • 29. Fast 29 Fast Need to Know ● Underlying Technology ● Load and Register Block Types ● Add Block Components ● Props and Attributes InspectorControls
  • 30. Fast 30 Fast Need to Know ● Underlying Technology ● Load and Register Block Types ● Add Block Components ● Props and Attributes BlockControls
  • 31. Fast 31 Fast Need to Know ● Underlying Technology ● Load and Register Block Types ● Add Block Components ● Props and Attributes
  • 32. Fast 32 Fast Need to Know ● Underlying Technology ● Load and Register Block Types ● Add Block Components ● Props and Attributes
  • 33. Fast 33 Fast Good to Know ● Editor Assets vs Frontend Assets ● Dynamic Blocks and ServerSideRender ● Internationalization (i18n) ● isSelected
  • 34. Fast 34 Fast Good to Know ● Editor Assets vs Frontend Assets ● Dynamic Blocks and ServerSideRender ● Internationalization (i18n) ● isSelected ● Editor Assets enqueue_block_editor_assets ● Frontend Assets wp_enqueue_scripts
  • 35. Fast 35 Fast Good to Know ● Editor Assets vs Frontend Assets ● Dynamic Blocks and ServerSideRender ● Internationalization (i18n) ● isSelected
  • 36. Fast 36 Fast Good to Know ● Editor Assets vs Frontend Assets ● Dynamic Blocks and ServerSideRender ● Internationalization (i18n) ● isSelected
  • 37. Fast 37 Fast Good to Know ● Editor Assets vs Frontend Assets ● Dynamic Blocks and ServerSideRender ● Internationalization (i18n) ● isSelected
  • 38. Fast 38 Fast Good to Know ● Editor Assets vs Frontend Assets ● Dynamic Blocks and ServerSideRender ● Internationalization (i18n) ● isSelected
  • 39. Fast 39 Fast Learn as you Grow ● @wordpress/data ● Plugins Sidebars
  • 40. Fast 40 Fast Learn as you Grow ● @wordpress/data ● Plugins Sidebars
  • 41. Fast 41 Fast Learn as you Grow ● @wordpress/data ● Plugins Sidebars
  • 42. Fast 42 Fast MVP ● Set up a local development environment ● Let’s use Create Block ● Add some Attributes and Components ● Build & Voila ● GitHub
  • 43. Fast 43 Fast MVP ● Set up a local development environment ● Let’s use Create Block ● Add some Attributes and Components ● Build & Voila ● GitHub ● Easy ○ Local by Flywheel ○ DevKinsta by Kinsta ● Intermediate ○ MAMP ○ XAMPP ● Advanced ○ VVV ○ Docker
  • 44. Fast 44 Fast MVP ● Set up a local development environment ● Let’s use Create Block ● Add some Attributes and Components ● Build & Voila ● GitHub source: https://www.npmjs.com/package/@wordpress/create-block npx @wordpress/create-block
  • 45. Fast 45 Fast MVP ● Set up a local development environment ● Let’s use Create Block ● Add some Attributes and Components ● Build & Voila ● GitHub mvp-block.php
  • 46. Fast 46 Fast MVP ● Set up a local development environment ● Let’s use Create Block ● Add some Attributes and Components ● Build & Voila ● GitHub block.json
  • 47. Fast 47 Fast MVP ● Set up a local development environment ● Let’s use Create Block ● Add some Attributes and Components ● Build & Voila ● GitHub src/index.js
  • 48. Fast 48 Fast MVP ● Set up a local development environment ● Let’s use Create Block ● Add some Attributes and Components ● Build & Voila ● GitHub src/edit.js
  • 49. Fast 49 Fast MVP ● Set up a local development environment ● Let’s use Create Block ● Add some Attributes and Components ● Build & Voila ● GitHub src/save.js
  • 50. Fast 50 Fast MVP ● Set up a local development environment ● Let’s use Create Block ● Add some Attributes and Components ● Build & Voila ● GitHub
  • 51. Fast 51 Fast MVP ● Set up a local development environment ● Let’s use Create Block ● Add some Attributes and Components ● Build & Voila ● GitHub
  • 52. Fast 52 Fast MVP ● Set up a local development environment ● Let’s use Create Block ● Add some Attributes and Components ● Build & Voila ● GitHub import { RichText } from ‘@wordpress/block-editor’; import blockEditor from ‘@wordpress/block-editor’; const RichText = blockEditor.RichText; const { RichText } = wp.blockEditor;
  • 53. Fast 53 Fast MVP ● Set up a local development environment ● Let’s use Create Block ● Add some Attributes and Components ● Build & Voila ● GitHub
  • 54. Fast 54 Fast MVP ● Set up a local development environment ● Let’s use Create Block ● Add some Attributes and Components ● Build & Voila ● GitHub
  • 55. Fast 55 Fast MVP ● Set up a local development environment ● Let’s use Create Block ● Add some Attributes and Components ● Build & Voila ● GitHub
  • 56. Fast 56 Fast MVP ● Set up a local development environment ● Let’s use Create Block ● Add some Attributes and Components ● Build & Voila ● GitHub
  • 57. Fast 57 Fast MVP ● Set up a local development environment ● Let’s use Create Block ● Add some Attributes and Components ● Build & Voila ● GitHub
  • 58. Fast 58 Fast MVP ● Set up a local development environment ● Let’s use Create Block ● Add some Attributes and Components ● Build & Voila ● GitHub
  • 59. Fast 59 Fast MVP ● Set up a local development environment ● Let’s use Create Block ● Add some Attributes and Components ● Build & Voila ● GitHub https://github.com/corywebb/wcus-mvp
  • 60. Fast 60 Fast What’s Next? ● Extend the MVP ● Share With the World ● Keep Learning
  • 61. Fast 61 Fast What’s Next? ● Extend the MVP ● Share With the World ● Keep Learning
  • 62. Fast 62 Fast What’s Next? ● Extend the MVP ● Share With the World ● Keep Learning
  • 63. Fast 63 Fast What’s Next? ● Extend the MVP ● Share With the World ● Keep Learning
  • 64. Questions? Fast Confidential & Proprietary 64 @corywebb