SlideShare une entreprise Scribd logo
1  sur  72
Modular Plugins
Pippin Williamson - http://pippinsplugins.com
               @pippinsplugins
     http://facebook.com/pippinsplugins

       around the web as “mordauk”
what are modular plugins?
plugins that can be
     extended
plugins that can be
      modified
Definition:
Definition:
plugins that can be modified and extended
Definition:
plugins that can be modified and extended

 without ever changing core plugin code
Example:
e-commerce plugins that accept
   add-on payment gateways
Example 2:
gallery plugins that allow you to
     alter the image markup
Example 3:
any plugin that has components that can be
   changed by a theme or other plugins
Example 3:
any plugin that has components that can be
   changed by a theme or other plugins
                     -
           even tiny components
text
text
images
text
images
 data
text
images
  data
layouts
text
 images
   data
 layouts
functions
any plugin can be modular
but not all are
most plugins are not modular
  and cannot be modified
but not all are
 most plugins are not modular
    and cannot be modified
               -
not without changing core code
it is a choice
it is a choice
plugin developers must choose
to make their plugins modular
the key to modularity
the key to modularity
 using core WordPress methods
the key to modularity
 using core WordPress methods

         add_action()
the key to modularity
 using core WordPress methods

         add_action()
          do_action()
the key to modularity
 using core WordPress methods

         add_action()
          do_action()
         add_filter()
the key to modularity
 using core WordPress methods

         add_action()
          do_action()
         add_filter()
        apply_filters()
what usually happens
what usually happens
most plugin developers do not include
     the necessary components
let’s see an example
what’s wrong with this?
what’s wrong with this?
      not much, actually
what’s wrong with this?
      not much, actually

           but . . .
what’s wrong with this?
      not much, actually

           but . . .

    it could be much better
how it should be done
what can we do with this?
the results
let’s modify it slightly
       different method

    slightly different output
now go a little further
combined
filters and actions can be combined
real world examples
   taken from real plugins
Restricted Site Access
BuddyPress
Soliloquy Slider
WP E-Commerce
Sugar Event Calendar
Gravity Forms
Easy Digital Downloads
Easy Digital Downloads
Easy Digital Downloads
reasons to build modular
         plugins
make developers happy
make developers happy
    the community matters
make developers happy
           the community matters

help the community by writing extensible code
make developers happy
           the community matters

help the community by writing extensible code

    others will say nice things about you
Matt Varone
“Extensible code makes me happy.”
Ryan Imel
“I think the true measure of a quality theme
   or plugin is how well it works with other
    plugins and themes - - both those that
  already exist and those that haven’t been
                   made yet.”
Jake Goldman
“What would core do?”
WordPress is modular
 how do you think plugins work?
WordPress is modular
       how do you think plugins work?
                      -
by using methods like those we just looked at
built with extensible
            functions
WordPress is comprised of extensible “modules”
build it like WordPress


build your plugins like you were building
            WordPress itself
why?
why?


because you ARE building WordPress itself
thanks

Contenu connexe

Tendances

Week 5 - Introduction to plug-ins and widgets
Week 5 - Introduction to plug-ins and widgetsWeek 5 - Introduction to plug-ins and widgets
Week 5 - Introduction to plug-ins and widgets
henri_makembe
 
Week 11 - Hosting and Migration
Week 11 - Hosting and MigrationWeek 11 - Hosting and Migration
Week 11 - Hosting and Migration
henri_makembe
 
Week 7 introduction to theme development
Week 7   introduction to theme developmentWeek 7   introduction to theme development
Week 7 introduction to theme development
henri_makembe
 
Week 9 - Introduction to Child Themes
Week 9  - Introduction to Child ThemesWeek 9  - Introduction to Child Themes
Week 9 - Introduction to Child Themes
henri_makembe
 
Filmstrip With Countdown
Filmstrip With CountdownFilmstrip With Countdown
Filmstrip With Countdown
loveyukina
 

Tendances (20)

Week 5 - Introduction to plug-ins and widgets
Week 5 - Introduction to plug-ins and widgetsWeek 5 - Introduction to plug-ins and widgets
Week 5 - Introduction to plug-ins and widgets
 
Week 11 - Hosting and Migration
Week 11 - Hosting and MigrationWeek 11 - Hosting and Migration
Week 11 - Hosting and Migration
 
Week 7 introduction to theme development
Week 7   introduction to theme developmentWeek 7   introduction to theme development
Week 7 introduction to theme development
 
Week 9 - Introduction to Child Themes
Week 9  - Introduction to Child ThemesWeek 9  - Introduction to Child Themes
Week 9 - Introduction to Child Themes
 
Writing Your First Plugin
Writing Your First PluginWriting Your First Plugin
Writing Your First Plugin
 
Use of ICt
Use of ICtUse of ICt
Use of ICt
 
Wordpress Shortcode
Wordpress ShortcodeWordpress Shortcode
Wordpress Shortcode
 
Lorelle at WordCamp 2008 - 260 Ways to Break WordPress
Lorelle at WordCamp 2008 - 260 Ways to Break WordPressLorelle at WordCamp 2008 - 260 Ways to Break WordPress
Lorelle at WordCamp 2008 - 260 Ways to Break WordPress
 
Introduction to WordPress Child Theming, WordCamp Kansas City, 2015
Introduction to WordPress Child Theming, WordCamp Kansas City, 2015Introduction to WordPress Child Theming, WordCamp Kansas City, 2015
Introduction to WordPress Child Theming, WordCamp Kansas City, 2015
 
Getting All Your Web Apps To Wear The Company Brand
Getting All Your Web Apps To Wear The Company BrandGetting All Your Web Apps To Wear The Company Brand
Getting All Your Web Apps To Wear The Company Brand
 
Intro to Plugin Development, Miami WordCamp, 2015
Intro to Plugin Development, Miami WordCamp, 2015Intro to Plugin Development, Miami WordCamp, 2015
Intro to Plugin Development, Miami WordCamp, 2015
 
Approaches To WordPress Theme Development
Approaches To WordPress Theme DevelopmentApproaches To WordPress Theme Development
Approaches To WordPress Theme Development
 
Question 4 - A2
Question 4 - A2Question 4 - A2
Question 4 - A2
 
Joomla SEO June 2015 - Sydney Joomla User Group
Joomla SEO June 2015 - Sydney Joomla User GroupJoomla SEO June 2015 - Sydney Joomla User Group
Joomla SEO June 2015 - Sydney Joomla User Group
 
Themes 101
Themes 101Themes 101
Themes 101
 
WordPress Child Themes
WordPress Child ThemesWordPress Child Themes
WordPress Child Themes
 
Filmstrip With Countdown
Filmstrip With CountdownFilmstrip With Countdown
Filmstrip With Countdown
 
CSI: WordPress -- Getting Into the Guts
CSI: WordPress -- Getting Into the GutsCSI: WordPress -- Getting Into the Guts
CSI: WordPress -- Getting Into the Guts
 
00680
0068000680
00680
 
yok
yokyok
yok
 

En vedette

Hits: A look at web metrics
Hits: A look at web metricsHits: A look at web metrics
Hits: A look at web metrics
Mitchell Hislop
 
Empowering journalists with WordPress
Empowering journalists with WordPressEmpowering journalists with WordPress
Empowering journalists with WordPress
Ryan Imel
 
Beyond Hits: Web Metrics beyond the simple
Beyond Hits: Web Metrics beyond the simpleBeyond Hits: Web Metrics beyond the simple
Beyond Hits: Web Metrics beyond the simple
Mitchell Hislop
 

En vedette (20)

Hits: A look at web metrics
Hits: A look at web metricsHits: A look at web metrics
Hits: A look at web metrics
 
How to: Reporting Issues
How to: Reporting IssuesHow to: Reporting Issues
How to: Reporting Issues
 
Importing & Migrating
Importing & MigratingImporting & Migrating
Importing & Migrating
 
Common WordPress mistakes (and more)
Common WordPress mistakes (and more)Common WordPress mistakes (and more)
Common WordPress mistakes (and more)
 
WordCamp GR 2012 Web Apps for the Masses
WordCamp GR 2012 Web Apps for the MassesWordCamp GR 2012 Web Apps for the Masses
WordCamp GR 2012 Web Apps for the Masses
 
Customizing WordPress from the Inside Out
Customizing WordPress from the Inside OutCustomizing WordPress from the Inside Out
Customizing WordPress from the Inside Out
 
Wp boot camp_slides_wordcamp_nashville_2012
Wp boot camp_slides_wordcamp_nashville_2012Wp boot camp_slides_wordcamp_nashville_2012
Wp boot camp_slides_wordcamp_nashville_2012
 
Empowering journalists with WordPress
Empowering journalists with WordPressEmpowering journalists with WordPress
Empowering journalists with WordPress
 
Every Theme Sucks and Nobody Cares - #wcgr
Every Theme Sucks and Nobody Cares - #wcgrEvery Theme Sucks and Nobody Cares - #wcgr
Every Theme Sucks and Nobody Cares - #wcgr
 
Word campgr stop selling seo namtrok
Word campgr stop selling seo namtrokWord campgr stop selling seo namtrok
Word campgr stop selling seo namtrok
 
WordCampGR 2012: Developing Child-Theme Friendly Themes
WordCampGR 2012: Developing Child-Theme Friendly ThemesWordCampGR 2012: Developing Child-Theme Friendly Themes
WordCampGR 2012: Developing Child-Theme Friendly Themes
 
Theme Selection: A process for choosing a WordPress Theme #WordCampMSP
Theme Selection: A process for choosing a WordPress Theme #WordCampMSPTheme Selection: A process for choosing a WordPress Theme #WordCampMSP
Theme Selection: A process for choosing a WordPress Theme #WordCampMSP
 
Writing Your First WordPress Plugin
Writing Your First WordPress PluginWriting Your First WordPress Plugin
Writing Your First WordPress Plugin
 
WordPress: Turn Your Website into a Social Media Engine
WordPress: Turn Your Website into a Social Media EngineWordPress: Turn Your Website into a Social Media Engine
WordPress: Turn Your Website into a Social Media Engine
 
Beyond Hits: Web Metrics beyond the simple
Beyond Hits: Web Metrics beyond the simpleBeyond Hits: Web Metrics beyond the simple
Beyond Hits: Web Metrics beyond the simple
 
Building your first plugin by John Hawkins at WordCamp MSP
Building your first plugin by John Hawkins at WordCamp MSPBuilding your first plugin by John Hawkins at WordCamp MSP
Building your first plugin by John Hawkins at WordCamp MSP
 
WordCamp MSP 2010
WordCamp MSP 2010WordCamp MSP 2010
WordCamp MSP 2010
 
Spooky WordPress: Disturbingly Brilliant Uses of WP
Spooky WordPress: Disturbingly Brilliant Uses of WPSpooky WordPress: Disturbingly Brilliant Uses of WP
Spooky WordPress: Disturbingly Brilliant Uses of WP
 
Understanding WordPress Multisite
Understanding WordPress MultisiteUnderstanding WordPress Multisite
Understanding WordPress Multisite
 
What's in a Theme? A Process for Selecting WordPress Themes
What's in a Theme? A Process for Selecting WordPress ThemesWhat's in a Theme? A Process for Selecting WordPress Themes
What's in a Theme? A Process for Selecting WordPress Themes
 

Similaire à Modular plugins

What is WordPress and Why Is Everyone Talking About it
What is WordPress and Why Is Everyone Talking About itWhat is WordPress and Why Is Everyone Talking About it
What is WordPress and Why Is Everyone Talking About it
BobWP.com
 
Kick start your career with WordPress
Kick start your career with WordPressKick start your career with WordPress
Kick start your career with WordPress
Jignasa Naik
 

Similaire à Modular plugins (20)

CALM Wordpress 102
CALM Wordpress 102CALM Wordpress 102
CALM Wordpress 102
 
Accessibility With WordPress: Accessing Higher Ground 2014
Accessibility With WordPress: Accessing Higher Ground 2014Accessibility With WordPress: Accessing Higher Ground 2014
Accessibility With WordPress: Accessing Higher Ground 2014
 
How to Create a Custom WordPress Plugin
How to Create a Custom WordPress PluginHow to Create a Custom WordPress Plugin
How to Create a Custom WordPress Plugin
 
WordCamp Greenville 2018 - Beware the Dark Side, or an Intro to Development
WordCamp Greenville 2018 - Beware the Dark Side, or an Intro to DevelopmentWordCamp Greenville 2018 - Beware the Dark Side, or an Intro to Development
WordCamp Greenville 2018 - Beware the Dark Side, or an Intro to Development
 
Build the Perfect WordPress Website
Build the Perfect WordPress WebsiteBuild the Perfect WordPress Website
Build the Perfect WordPress Website
 
5 Steps to Develop a WordPress Plugin From Scratch.pdf
5 Steps to Develop a WordPress Plugin From Scratch.pdf5 Steps to Develop a WordPress Plugin From Scratch.pdf
5 Steps to Develop a WordPress Plugin From Scratch.pdf
 
Wordpress as a framework
Wordpress as a frameworkWordpress as a framework
Wordpress as a framework
 
Learn word press-from-scratch
Learn word press-from-scratchLearn word press-from-scratch
Learn word press-from-scratch
 
CMS Showdown
CMS ShowdownCMS Showdown
CMS Showdown
 
What Is WordPress and Why Should I Use It? - Workshop April 2015
What Is WordPress and Why Should I Use It? - Workshop April 2015What Is WordPress and Why Should I Use It? - Workshop April 2015
What Is WordPress and Why Should I Use It? - Workshop April 2015
 
What Is WordPress and Why Is Everyone Talking About It?
What Is WordPress and Why Is Everyone Talking About It?What Is WordPress and Why Is Everyone Talking About It?
What Is WordPress and Why Is Everyone Talking About It?
 
What is WordPress and Why Is Everyone Talking About it
What is WordPress and Why Is Everyone Talking About itWhat is WordPress and Why Is Everyone Talking About it
What is WordPress and Why Is Everyone Talking About it
 
Test ss 2
Test ss 2Test ss 2
Test ss 2
 
Kick start your career with WordPress
Kick start your career with WordPressKick start your career with WordPress
Kick start your career with WordPress
 
Tsvetan stoychev m_mspeakers-edited-final
Tsvetan stoychev m_mspeakers-edited-finalTsvetan stoychev m_mspeakers-edited-final
Tsvetan stoychev m_mspeakers-edited-final
 
How to create your own WordPress plugin
How to create your own WordPress pluginHow to create your own WordPress plugin
How to create your own WordPress plugin
 
Advanced WordPress Optimization - iGaming Supershow 2012
Advanced WordPress Optimization - iGaming Supershow 2012Advanced WordPress Optimization - iGaming Supershow 2012
Advanced WordPress Optimization - iGaming Supershow 2012
 
Customizing WordPress Themes
Customizing WordPress ThemesCustomizing WordPress Themes
Customizing WordPress Themes
 
WordPress and the 3 Bears: Themes, Plugins & Widgets
WordPress and the 3 Bears: Themes, Plugins & WidgetsWordPress and the 3 Bears: Themes, Plugins & Widgets
WordPress and the 3 Bears: Themes, Plugins & Widgets
 
Git Makes Me Angry Inside
Git Makes Me Angry InsideGit Makes Me Angry Inside
Git Makes Me Angry Inside
 

Dernier

Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
UK Journal
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
FIDO Alliance
 

Dernier (20)

Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & Ireland
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 

Modular plugins

Notes de l'éditeur

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n