SlideShare a Scribd company logo
1 of 13
Download to read offline
Plugin
Development for
Beginners
By Joe Cartonia
About me
Name: Joe Cartonia
GitHub: https://github.com/cssjoe
Twitter: @joemotocss
I was born in Buffalo, living in Virginia Beach since 2007, and working as a WordPress
plugin and API developer for BoldGrid since 2014. Technology has always been a major
interest of mine since the first grade. I also enjoy traveling, motorsports, snowboarding,
playing guitar, and spending time at the beach.
Why make a plugin?
● Add functionality to your website
○ There may not be a plugin available to satisfy your needs
○ Other plugins may not suffice or may be too complicated
● Create a useful plugin, intending to publish in the WordPress.org directory.
○ Contribute open source solutions to the community
● Make a plugin for a commercial or private service
○ For sale or subscription
○ If the license is not GPL, then it cannot be on WordPress.org.
Software licenses
A software license is expected to be included with plugins. In most cases, GPL (General
Public License) is used; the same open source license that WordPress core uses. This
means that everyone is free to use and redistribute the plugin, in a modified or
unmodified form.
License specification examples: GPL-2.0-or-later, GPL-2.0+, GPL2, GPL3, MIT
Information on licenses:
● https://developer.wordpress.org/plugins/the-basics/including-a-software-license/
● https://www.gnu.org/licenses/gpl.html
● https://choosealicense.com/
Simple ways to start developing a plugin
● Single PHP file
○ For simple/basic functionality
○ Quick and easy
○ https://developer.wordpress.org/plugins/the-basics/header-requirements/
■ Start with a main plugin file header
● Multiple files under a directory structure
○ For more advanced functionality
○ Usually requires more of a time investment
○ Better organization of code; readability and easier to maintain.
○ Allows code to be modular
● Boilerplate
○ For more advanced developers
○ Similar to multiple files, but provides a head start to creating the structure.
○ Online generators, such as: https://wppb.me/
○ Examples on GitHub: https://github.com/devinvinson/WordPress-Plugin-Boilerplate/
A single file plugin
using procedural
This is a small PHP file containing everything needed
to convert a shortcode to a content block.
A shortcode is registered and mapped to a callback
function, which is defined in the global scope. The
name is prefixed, to help prevent duplicate function
declarations / name collision.
https://developer.wordpress.org/plugins/the-basics/
best-practices/#procedural
https://github.com/cssjoe/my-signature/tree/0.1.0
A single file plugin
using Object Oriented
Programming (OOP)
This is a small PHP file containing everything needed
to convert a shortcode to a content block.
A class definition is used to confine the functions and
variables to the scope of a class. It is recommended
to avoid littering the global space.
https://developer.wordpress.org/plugins/the-basics/best-prac
tices/#oop
https://github.com/cssjoe/my-signature/tree/1.0.0
Avoiding class name collisions
Class names can be defined different ways. They should be unique in the global space.
● Using a unique prefix
○ Example: class My_Plugin_Name_Some_Class_Name {}
○ Accessed globally using My_Plugin_Name_Some_Class_Name
● Using a namespace
○ Example: namespace PluginNameCategory;
class My_Class {}
○ Accessed globally using PluginNameCategoryMy_Class
○ https://www.php.net/manual/en/language.namespaces.rationale.php
A plugin with multiple
files and directories
This is a group of directories containing the files
needed to convert a shortcode to a content block.
https://developer.wordpress.org/plugins/the-basi
cs/best-practices/#folder-structure
https://github.com/cssjoe/my-signature/tree/2.0.0
The example plugin in action
Left side: A shortcode
“[my-signature]” is added to a page
in the wp-admin post and page
editor.
Right side: A preview of the page contains the
markup inserted from the plugin.
Resources available
WordPress.org
● Make WordPress Plugins: https://make.wordpress.org/plugins/
● Plugin Handbook: https://developer.wordpress.org/plugins/
● Plugin Directory: https://developer.wordpress.org/plugins/wordpress-org/
Code reference
● https://developer.wordpress.org/reference/
● http://www.php.net/
Making WordPress Slack Workspace
● https://wordpress.slack.com/messages/pluginreview
WordPress Meetups
● https://www.meetup.com/topics/wordpress/
Q & A
Please ask any questions that you may have.
I will try to answer all questions in the time that we have left.
Thank you!
I would like to thank everyone for attending.
The plugin examples used here are available on GitHub: https://github.com/cssjoe
This slideshow and others are available on SlideShare.net: https://www.slideshare.net/JoeCartonia
Please follow me on Twitter: @joemotocss

More Related Content

What's hot

Bootstrapping your plugin
Bootstrapping your pluginBootstrapping your plugin
Bootstrapping your plugin
Marko Heijnen
 
(WS11) Dobrica Pavlinušić: HTML5TV - kako obraditi i objaviti predavanja na w...
(WS11) Dobrica Pavlinušić: HTML5TV - kako obraditi i objaviti predavanja na w...(WS11) Dobrica Pavlinušić: HTML5TV - kako obraditi i objaviti predavanja na w...
(WS11) Dobrica Pavlinušić: HTML5TV - kako obraditi i objaviti predavanja na w...
Web::Strategija
 

What's hot (20)

Flexbox
FlexboxFlexbox
Flexbox
 
[drupalday2017 - KEYNOTE] - Saving the world one Open Source project at a time
[drupalday2017 - KEYNOTE] - Saving the world one Open Source project at a time[drupalday2017 - KEYNOTE] - Saving the world one Open Source project at a time
[drupalday2017 - KEYNOTE] - Saving the world one Open Source project at a time
 
[drupalday2017] - Behat per Drupal: test automatici e molto di più
[drupalday2017] - Behat per Drupal: test automatici e molto di più[drupalday2017] - Behat per Drupal: test automatici e molto di più
[drupalday2017] - Behat per Drupal: test automatici e molto di più
 
wp cli- don’t fear the command line
wp cli- don’t fear the command linewp cli- don’t fear the command line
wp cli- don’t fear the command line
 
Developing FirefoxOS
Developing FirefoxOSDeveloping FirefoxOS
Developing FirefoxOS
 
Uyuni is now translatable
Uyuni is now translatableUyuni is now translatable
Uyuni is now translatable
 
Steps to contribute to firefox os (gaia)
Steps to contribute to firefox os (gaia)Steps to contribute to firefox os (gaia)
Steps to contribute to firefox os (gaia)
 
What is the Responsibility of Plugin Developers?
What is the Responsibility of Plugin Developers?What is the Responsibility of Plugin Developers?
What is the Responsibility of Plugin Developers?
 
Make web as webapp
Make web as webappMake web as webapp
Make web as webapp
 
Bootstrapping your plugin
Bootstrapping your pluginBootstrapping your plugin
Bootstrapping your plugin
 
Going Global with WordPress Multilingual (WordCamp Denpasar 2016)
Going Global with WordPress Multilingual (WordCamp Denpasar 2016)Going Global with WordPress Multilingual (WordCamp Denpasar 2016)
Going Global with WordPress Multilingual (WordCamp Denpasar 2016)
 
Word Camp Kansai 2014 - MVC Framework
Word Camp Kansai 2014 - MVC FrameworkWord Camp Kansai 2014 - MVC Framework
Word Camp Kansai 2014 - MVC Framework
 
Firefox os how large open source project works
Firefox os   how large open source project worksFirefox os   how large open source project works
Firefox os how large open source project works
 
Building plugins like a pro
Building plugins like a proBuilding plugins like a pro
Building plugins like a pro
 
Rapid WordPress theme development
Rapid WordPress theme developmentRapid WordPress theme development
Rapid WordPress theme development
 
Introducing ofgodpaperframework
Introducing ofgodpaperframeworkIntroducing ofgodpaperframework
Introducing ofgodpaperframework
 
(WS11) Dobrica Pavlinušić: HTML5TV - kako obraditi i objaviti predavanja na w...
(WS11) Dobrica Pavlinušić: HTML5TV - kako obraditi i objaviti predavanja na w...(WS11) Dobrica Pavlinušić: HTML5TV - kako obraditi i objaviti predavanja na w...
(WS11) Dobrica Pavlinušić: HTML5TV - kako obraditi i objaviti predavanja na w...
 
Gutenberg - The future of WordPress
Gutenberg - The future of WordPressGutenberg - The future of WordPress
Gutenberg - The future of WordPress
 
Rapid Application Development in Plone - Paul Roe
Rapid Application Development in Plone - Paul RoeRapid Application Development in Plone - Paul Roe
Rapid Application Development in Plone - Paul Roe
 
Debugging WordPress Core and Plugins!
Debugging WordPress Core and Plugins!Debugging WordPress Core and Plugins!
Debugging WordPress Core and Plugins!
 

Similar to Plugin Development for Beginners v.2019

Creating Extensible Plugins for WordPress
Creating Extensible Plugins for WordPressCreating Extensible Plugins for WordPress
Creating Extensible Plugins for WordPress
Hristo Chakarov
 
WPSessions Composer for WordPress Plugin Development
WPSessions Composer for WordPress Plugin DevelopmentWPSessions Composer for WordPress Plugin Development
WPSessions Composer for WordPress Plugin Development
Caldera Labs
 
WordPress Plugin Development
WordPress Plugin DevelopmentWordPress Plugin Development
WordPress Plugin Development
Adam Englander
 
Extending WordPress
Extending WordPressExtending WordPress
Extending WordPress
rodasc
 
WordPress Plugin Development 201
WordPress Plugin Development 201WordPress Plugin Development 201
WordPress Plugin Development 201
ylefebvre
 

Similar to Plugin Development for Beginners v.2019 (20)

WordPress Plugin Development- Rich Media Institute Workshop
WordPress Plugin Development- Rich Media Institute WorkshopWordPress Plugin Development- Rich Media Institute Workshop
WordPress Plugin Development- Rich Media Institute Workshop
 
Making the Most of Plug-ins - WordCamp Toronto 2008
Making the Most of Plug-ins - WordCamp Toronto 2008Making the Most of Plug-ins - WordCamp Toronto 2008
Making the Most of Plug-ins - WordCamp Toronto 2008
 
Creating Extensible Plugins for WordPress
Creating Extensible Plugins for WordPressCreating Extensible Plugins for WordPress
Creating Extensible Plugins for WordPress
 
Create a site with Multisite plugin WordPress
Create a site with Multisite plugin WordPressCreate a site with Multisite plugin WordPress
Create a site with Multisite plugin WordPress
 
WPSessions Composer for WordPress Plugin Development
WPSessions Composer for WordPress Plugin DevelopmentWPSessions Composer for WordPress Plugin Development
WPSessions Composer for WordPress Plugin Development
 
WordPress plugins
WordPress pluginsWordPress plugins
WordPress plugins
 
Plugin development demystified 2017
Plugin development demystified 2017Plugin development demystified 2017
Plugin development demystified 2017
 
Google App Engine for PHP
Google App Engine for PHP Google App Engine for PHP
Google App Engine for PHP
 
WordPress Plugin Development
WordPress Plugin DevelopmentWordPress Plugin Development
WordPress Plugin Development
 
Contributing to Apache Airflow | Journey to becoming Airflow's leading contri...
Contributing to Apache Airflow | Journey to becoming Airflow's leading contri...Contributing to Apache Airflow | Journey to becoming Airflow's leading contri...
Contributing to Apache Airflow | Journey to becoming Airflow's leading contri...
 
Extending WordPress
Extending WordPressExtending WordPress
Extending WordPress
 
Surgeons guide plugin development
Surgeons guide plugin developmentSurgeons guide plugin development
Surgeons guide plugin development
 
Introduction To Simple WordPress Plugin Development
Introduction To Simple WordPress Plugin DevelopmentIntroduction To Simple WordPress Plugin Development
Introduction To Simple WordPress Plugin Development
 
WordPress Plugin Development 201
WordPress Plugin Development 201WordPress Plugin Development 201
WordPress Plugin Development 201
 
WordPress modern development
WordPress modern developmentWordPress modern development
WordPress modern development
 
Resources For Floss Projects
Resources For Floss ProjectsResources For Floss Projects
Resources For Floss Projects
 
Python Django tutorial | Getting Started With Django | Web Development With D...
Python Django tutorial | Getting Started With Django | Web Development With D...Python Django tutorial | Getting Started With Django | Web Development With D...
Python Django tutorial | Getting Started With Django | Web Development With D...
 
WordPress: After The Install
WordPress: After The InstallWordPress: After The Install
WordPress: After The Install
 
ENIB 2015-2016 - CAI Web - S01E01- La forge JavaScript
ENIB 2015-2016 - CAI Web - S01E01- La forge JavaScriptENIB 2015-2016 - CAI Web - S01E01- La forge JavaScript
ENIB 2015-2016 - CAI Web - S01E01- La forge JavaScript
 
45 WordPress Interview Questions
45 WordPress Interview Questions45 WordPress Interview Questions
45 WordPress Interview Questions
 

Recently uploaded

The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Recently uploaded (20)

tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 

Plugin Development for Beginners v.2019

  • 2. About me Name: Joe Cartonia GitHub: https://github.com/cssjoe Twitter: @joemotocss I was born in Buffalo, living in Virginia Beach since 2007, and working as a WordPress plugin and API developer for BoldGrid since 2014. Technology has always been a major interest of mine since the first grade. I also enjoy traveling, motorsports, snowboarding, playing guitar, and spending time at the beach.
  • 3. Why make a plugin? ● Add functionality to your website ○ There may not be a plugin available to satisfy your needs ○ Other plugins may not suffice or may be too complicated ● Create a useful plugin, intending to publish in the WordPress.org directory. ○ Contribute open source solutions to the community ● Make a plugin for a commercial or private service ○ For sale or subscription ○ If the license is not GPL, then it cannot be on WordPress.org.
  • 4. Software licenses A software license is expected to be included with plugins. In most cases, GPL (General Public License) is used; the same open source license that WordPress core uses. This means that everyone is free to use and redistribute the plugin, in a modified or unmodified form. License specification examples: GPL-2.0-or-later, GPL-2.0+, GPL2, GPL3, MIT Information on licenses: ● https://developer.wordpress.org/plugins/the-basics/including-a-software-license/ ● https://www.gnu.org/licenses/gpl.html ● https://choosealicense.com/
  • 5. Simple ways to start developing a plugin ● Single PHP file ○ For simple/basic functionality ○ Quick and easy ○ https://developer.wordpress.org/plugins/the-basics/header-requirements/ ■ Start with a main plugin file header ● Multiple files under a directory structure ○ For more advanced functionality ○ Usually requires more of a time investment ○ Better organization of code; readability and easier to maintain. ○ Allows code to be modular ● Boilerplate ○ For more advanced developers ○ Similar to multiple files, but provides a head start to creating the structure. ○ Online generators, such as: https://wppb.me/ ○ Examples on GitHub: https://github.com/devinvinson/WordPress-Plugin-Boilerplate/
  • 6. A single file plugin using procedural This is a small PHP file containing everything needed to convert a shortcode to a content block. A shortcode is registered and mapped to a callback function, which is defined in the global scope. The name is prefixed, to help prevent duplicate function declarations / name collision. https://developer.wordpress.org/plugins/the-basics/ best-practices/#procedural https://github.com/cssjoe/my-signature/tree/0.1.0
  • 7. A single file plugin using Object Oriented Programming (OOP) This is a small PHP file containing everything needed to convert a shortcode to a content block. A class definition is used to confine the functions and variables to the scope of a class. It is recommended to avoid littering the global space. https://developer.wordpress.org/plugins/the-basics/best-prac tices/#oop https://github.com/cssjoe/my-signature/tree/1.0.0
  • 8. Avoiding class name collisions Class names can be defined different ways. They should be unique in the global space. ● Using a unique prefix ○ Example: class My_Plugin_Name_Some_Class_Name {} ○ Accessed globally using My_Plugin_Name_Some_Class_Name ● Using a namespace ○ Example: namespace PluginNameCategory; class My_Class {} ○ Accessed globally using PluginNameCategoryMy_Class ○ https://www.php.net/manual/en/language.namespaces.rationale.php
  • 9. A plugin with multiple files and directories This is a group of directories containing the files needed to convert a shortcode to a content block. https://developer.wordpress.org/plugins/the-basi cs/best-practices/#folder-structure https://github.com/cssjoe/my-signature/tree/2.0.0
  • 10. The example plugin in action Left side: A shortcode “[my-signature]” is added to a page in the wp-admin post and page editor. Right side: A preview of the page contains the markup inserted from the plugin.
  • 11. Resources available WordPress.org ● Make WordPress Plugins: https://make.wordpress.org/plugins/ ● Plugin Handbook: https://developer.wordpress.org/plugins/ ● Plugin Directory: https://developer.wordpress.org/plugins/wordpress-org/ Code reference ● https://developer.wordpress.org/reference/ ● http://www.php.net/ Making WordPress Slack Workspace ● https://wordpress.slack.com/messages/pluginreview WordPress Meetups ● https://www.meetup.com/topics/wordpress/
  • 12. Q & A Please ask any questions that you may have. I will try to answer all questions in the time that we have left.
  • 13. Thank you! I would like to thank everyone for attending. The plugin examples used here are available on GitHub: https://github.com/cssjoe This slideshow and others are available on SlideShare.net: https://www.slideshare.net/JoeCartonia Please follow me on Twitter: @joemotocss