SlideShare a Scribd company logo
1 of 75
Submitting, maintaining
and growing a plugin on
wp.org
Brian Hogg
@brianhogg
brianhogg.com
Ask Questions
Plugins
https://brianhogg.com/plugins
Courses
https://brianhogg.com/courses
Learning Center
https://brianhogg.com/blog
WordCamp Hamilton
https://hamilton.wordcamp.org/
Who Are You?
Getting the Plugin
Ready to Submit
readme.txt
readme.txt
/your-plugin
readme.txt
readme.txt
• Short and long description
• Installation notes
• Frequently Asked Questions (FAQs)
• Reference to screenshots
• License (GPL)
• Changelog
Don’t spam the ‘tags’
Look at other plugin
readme.txt files
Validate your
readme.txt file before
submitting!
wp.org Rules
100% GPL Compatible
No Tracking Without
Explicit Consent
No credits or links back
to your site on the front-
end
No nags or non-
dismissible alerts
Nothing Illegal
… to disable or remove any
plugin from the directory, even for
reasons not explicitly covered by
the guidelines.
Releasing Your Plugin
Releasing Your Plugin
• Ensure readme.txt is present and
validated
• Package the zip file
• Remove .git folder
• Submit the plugin for review
• Push code up to SVN
Test with WP_DEBUG
turned on
wordpress.org/plugins/a
dd
https://login.wordpress.org/register/
No auto replies from
your email address
Your Plugin Name
your-plugin-name
https://plugins.svn.wordpress.org/your-plugin-name
SVN Repository
ttps://plugins.svn.wordpress.org/your-plugin-name your-fold
SVN Repository
SVN Repository
/your-folder-name
trunk/
SVN Repository
/your-folder-name
trunk/
chimpbridge.php
includes/
...
svn add trunk/*
SVN Repository
svn ci -m 'Adding first version of my plugin'
SVN Repository
https://wordpress.org/plugins/your-plugin-name
Plugin is released!
Add screenshots, icon,
and header images
SVN Repository
/your-folder-name
assets/
trunk/
chimpbridge.php
includes/
...
SVN Repository
/your-folder-name
assets/
screenshot-1.png
screenshot-2.png
trunk/
chimpbridge.php
includes/
...
svn add assets/*
SVN Repository
svn ci -m 'Adding screenshots'
SVN Repository
Keeping the plugins up to
date
Releasing a New
Version
1. Make changes to your plugin code
2. Update version number in your
readme.txt and in your plugin
header
3. Add a line to the Changelog section
of your readme.txt
4. svn add …your file(s)…
5. svn ci -m ‘your message for new version’
Tagging the New
Version
1. cd ..
2. svn cp trunk tags/1.1
3. svn ci -m ‘tagging version 1.1’
Tagging the New
Version
/your-folder-name
assets/
trunk/
your-plugin-name.php
...
Tagging the New
Version
/your-folder-name
assets/
tags/
1.1/
trunk/
your-plugin-name.php
...
Tagging the New
Version
/your-folder-name
assets/
tags/
1.1/
1.2/
trunk/
your-plugin-name.php
...
Increase version number
for every release
SVN + Git
SVN Repository
/your-folder-name
assets/
trunk/
your-plugin-name.php
...
SVN Repository
/your-folder-name
assets/
trunk/
.git
your-plugin-name.php
...
ianhogg.com/maintain-update-free-wordpress-org-hosted-plugin-
Don’t use SVN as your
development repo
Tips on your plugin
code
Don’t include your
CSS/JavaScript
everywhere
https://brianhogg.com/jswp
Don’t include your own
version of jQuery
https://brianhogg.com/jswp
Do include a PHP/WP
version check
https://github.com/unfulvio/wp-requirements
Do use apply_filters() and
do_action() where it makes
sense
Do make your plugin
translatable with _ _()
Do add a plugin help
page
Do test, test, test
Getting more users for
your plugin
Word of Mouth / Social
Youtube how-to videos
Frequent Updates
https://freemius.com/blog/seo-on-new-plugin-repository/
It’s hard
Worth It
Plugins
https://brianhogg.com/plugins
Selling Plugins
https://sellingplugins.com
Plugins for Beginners
https://pluginsforbeginners.com
Learning Center
https://brianhogg.com/blog
WordCamp Hamilton
https://hamilton.wordcamp.org/
Questions?

More Related Content

Similar to Submitting, maintaining and growing a plugin on wp.org

Practical SVN for PHP Developers
Practical SVN for PHP DevelopersPractical SVN for PHP Developers
Practical SVN for PHP DevelopersLorna Mitchell
 
Introduction to Subversion and Google Project Hosting
Introduction to Subversion and Google Project HostingIntroduction to Subversion and Google Project Hosting
Introduction to Subversion and Google Project HostingPhilip Johnson
 
SVN Usage & Best Practices
SVN Usage & Best PracticesSVN Usage & Best Practices
SVN Usage & Best PracticesAshraf Fouad
 
Rails Plugins 1 Plugin
Rails Plugins 1 PluginRails Plugins 1 Plugin
Rails Plugins 1 Pluginoscon2007
 
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.orgMarcinStachniuk
 
WordPress Plugin Development For Beginners
WordPress Plugin Development For BeginnersWordPress Plugin Development For Beginners
WordPress Plugin Development For Beginnersjohnpbloch
 
Totalsvn Usage And Administration By Gopi
Totalsvn Usage And Administration By GopiTotalsvn Usage And Administration By Gopi
Totalsvn Usage And Administration By Gopigopinathkarangula
 
Managing Plone Projects with Perl and Subversion
Managing Plone Projects with Perl and SubversionManaging Plone Projects with Perl and Subversion
Managing Plone Projects with Perl and SubversionLuciano Rocha
 
[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 ShipkitMarcinStachniuk
 
DevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
DevOps on AWS: Accelerating Software Delivery with the AWS Developer ToolsDevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
DevOps on AWS: Accelerating Software Delivery with the AWS Developer ToolsAmazon Web Services
 
Create a PHP Library the right way
Create a PHP Library the right wayCreate a PHP Library the right way
Create a PHP Library the right wayChristian Varela
 
Mpeg guide
Mpeg  guideMpeg  guide
Mpeg guidekimsach
 
Develop FOSS project using Google Code Hosting
Develop FOSS project using Google Code HostingDevelop FOSS project using Google Code Hosting
Develop FOSS project using Google Code HostingNarendra Sisodiya
 
Getting started with CFEngine - Webinar
Getting started with CFEngine - WebinarGetting started with CFEngine - Webinar
Getting started with CFEngine - WebinarCFEngine
 
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Tips & Tricks, presented at the Tel Aviv Selenium MeetupSelenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Tips & Tricks, presented at the Tel Aviv Selenium MeetupDave Haeffner
 
Django is a high-level Python web framework that enables rapid development of...
Django is a high-level Python web framework that enables rapid development of...Django is a high-level Python web framework that enables rapid development of...
Django is a high-level Python web framework that enables rapid development of...ArijitDutta80
 
Bitbucket git-bamboo-jira
Bitbucket git-bamboo-jiraBitbucket git-bamboo-jira
Bitbucket git-bamboo-jiralenamattt
 
Version control with git
Version control with gitVersion control with git
Version control with gitPurav Gandhi
 

Similar to Submitting, maintaining and growing a plugin on wp.org (20)

Practical SVN for PHP Developers
Practical SVN for PHP DevelopersPractical SVN for PHP Developers
Practical SVN for PHP Developers
 
Introduction to Subversion and Google Project Hosting
Introduction to Subversion and Google Project HostingIntroduction to Subversion and Google Project Hosting
Introduction to Subversion and Google Project Hosting
 
SVN Usage & Best Practices
SVN Usage & Best PracticesSVN Usage & Best Practices
SVN Usage & Best Practices
 
Rails Plugins 1 Plugin
Rails Plugins 1 PluginRails Plugins 1 Plugin
Rails Plugins 1 Plugin
 
groovy & grails - lecture 10
groovy & grails - lecture 10groovy & grails - lecture 10
groovy & grails - lecture 10
 
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
 
WordPress Plugin Development For Beginners
WordPress Plugin Development For BeginnersWordPress Plugin Development For Beginners
WordPress Plugin Development For Beginners
 
Totalsvn Usage And Administration By Gopi
Totalsvn Usage And Administration By GopiTotalsvn Usage And Administration By Gopi
Totalsvn Usage And Administration By Gopi
 
Managing Plone Projects with Perl and Subversion
Managing Plone Projects with Perl and SubversionManaging Plone Projects with Perl and Subversion
Managing Plone Projects with Perl and Subversion
 
[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
 
DevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
DevOps on AWS: Accelerating Software Delivery with the AWS Developer ToolsDevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
DevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
 
Create a PHP Library the right way
Create a PHP Library the right wayCreate a PHP Library the right way
Create a PHP Library the right way
 
Mpeg guide
Mpeg  guideMpeg  guide
Mpeg guide
 
Develop FOSS project using Google Code Hosting
Develop FOSS project using Google Code HostingDevelop FOSS project using Google Code Hosting
Develop FOSS project using Google Code Hosting
 
Getting started with CFEngine - Webinar
Getting started with CFEngine - WebinarGetting started with CFEngine - Webinar
Getting started with CFEngine - Webinar
 
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Tips & Tricks, presented at the Tel Aviv Selenium MeetupSelenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
 
Django is a high-level Python web framework that enables rapid development of...
Django is a high-level Python web framework that enables rapid development of...Django is a high-level Python web framework that enables rapid development of...
Django is a high-level Python web framework that enables rapid development of...
 
Bitbucket git-bamboo-jira
Bitbucket git-bamboo-jiraBitbucket git-bamboo-jira
Bitbucket git-bamboo-jira
 
Version control with git
Version control with gitVersion control with git
Version control with git
 
ADF in action 1.2
ADF in action 1.2ADF in action 1.2
ADF in action 1.2
 

More from Brian Hogg

Preparing a WordPress Plugin for Translation
Preparing a WordPress Plugin for TranslationPreparing a WordPress Plugin for Translation
Preparing a WordPress Plugin for TranslationBrian Hogg
 
Your WordPress Freelance Business Site
Your WordPress Freelance Business SiteYour WordPress Freelance Business Site
Your WordPress Freelance Business SiteBrian Hogg
 
Things I've Learned About Creating a Premium Plugin
Things I've Learned About Creating a Premium PluginThings I've Learned About Creating a Premium Plugin
Things I've Learned About Creating a Premium PluginBrian Hogg
 
WordPress 4.4 and Upgrading Your Site (without the tears...)
WordPress 4.4 and Upgrading Your Site (without the tears...)WordPress 4.4 and Upgrading Your Site (without the tears...)
WordPress 4.4 and Upgrading Your Site (without the tears...)Brian Hogg
 
WordCamp Ann Arbor 2015 Introduction to Backbone + WP REST API
WordCamp Ann Arbor 2015 Introduction to Backbone + WP REST APIWordCamp Ann Arbor 2015 Introduction to Backbone + WP REST API
WordCamp Ann Arbor 2015 Introduction to Backbone + WP REST APIBrian Hogg
 
Using Actions and Filters in WordPress to Make a Plugin Your Own
Using Actions and Filters in WordPress to Make a Plugin Your OwnUsing Actions and Filters in WordPress to Make a Plugin Your Own
Using Actions and Filters in WordPress to Make a Plugin Your OwnBrian Hogg
 
Things I learned about Stress and Imposter Syndrome in Tech
Things I learned about Stress and Imposter Syndrome in TechThings I learned about Stress and Imposter Syndrome in Tech
Things I learned about Stress and Imposter Syndrome in TechBrian Hogg
 
Introduction to backbone presentation
Introduction to backbone presentationIntroduction to backbone presentation
Introduction to backbone presentationBrian Hogg
 
Pricing and Marketing for Freelancers - How to?
Pricing and Marketing for Freelancers - How to?Pricing and Marketing for Freelancers - How to?
Pricing and Marketing for Freelancers - How to?Brian Hogg
 
Introduction to test driven development
Introduction to test driven developmentIntroduction to test driven development
Introduction to test driven developmentBrian Hogg
 
Working with Geolocation in Wordpress
Working with Geolocation in WordpressWorking with Geolocation in Wordpress
Working with Geolocation in WordpressBrian Hogg
 
Intro to Web Apps using HTML5 and Javascript
Intro to Web Apps using HTML5 and JavascriptIntro to Web Apps using HTML5 and Javascript
Intro to Web Apps using HTML5 and JavascriptBrian Hogg
 

More from Brian Hogg (12)

Preparing a WordPress Plugin for Translation
Preparing a WordPress Plugin for TranslationPreparing a WordPress Plugin for Translation
Preparing a WordPress Plugin for Translation
 
Your WordPress Freelance Business Site
Your WordPress Freelance Business SiteYour WordPress Freelance Business Site
Your WordPress Freelance Business Site
 
Things I've Learned About Creating a Premium Plugin
Things I've Learned About Creating a Premium PluginThings I've Learned About Creating a Premium Plugin
Things I've Learned About Creating a Premium Plugin
 
WordPress 4.4 and Upgrading Your Site (without the tears...)
WordPress 4.4 and Upgrading Your Site (without the tears...)WordPress 4.4 and Upgrading Your Site (without the tears...)
WordPress 4.4 and Upgrading Your Site (without the tears...)
 
WordCamp Ann Arbor 2015 Introduction to Backbone + WP REST API
WordCamp Ann Arbor 2015 Introduction to Backbone + WP REST APIWordCamp Ann Arbor 2015 Introduction to Backbone + WP REST API
WordCamp Ann Arbor 2015 Introduction to Backbone + WP REST API
 
Using Actions and Filters in WordPress to Make a Plugin Your Own
Using Actions and Filters in WordPress to Make a Plugin Your OwnUsing Actions and Filters in WordPress to Make a Plugin Your Own
Using Actions and Filters in WordPress to Make a Plugin Your Own
 
Things I learned about Stress and Imposter Syndrome in Tech
Things I learned about Stress and Imposter Syndrome in TechThings I learned about Stress and Imposter Syndrome in Tech
Things I learned about Stress and Imposter Syndrome in Tech
 
Introduction to backbone presentation
Introduction to backbone presentationIntroduction to backbone presentation
Introduction to backbone presentation
 
Pricing and Marketing for Freelancers - How to?
Pricing and Marketing for Freelancers - How to?Pricing and Marketing for Freelancers - How to?
Pricing and Marketing for Freelancers - How to?
 
Introduction to test driven development
Introduction to test driven developmentIntroduction to test driven development
Introduction to test driven development
 
Working with Geolocation in Wordpress
Working with Geolocation in WordpressWorking with Geolocation in Wordpress
Working with Geolocation in Wordpress
 
Intro to Web Apps using HTML5 and Javascript
Intro to Web Apps using HTML5 and JavascriptIntro to Web Apps using HTML5 and Javascript
Intro to Web Apps using HTML5 and Javascript
 

Recently uploaded

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 

Recently uploaded (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Submitting, maintaining and growing a plugin on wp.org

Editor's Notes

  1. My answer might be wait and I’ll get to that, but would rather your questions while they’re on your mind then all at the end.
  2. have created a plugin, even a small one for a client project have a plugin release on the wordpress.org repo already Not going through how to actually code a plugin in this talk, I’m assuming you already have one, but hopefully this will still be useful to keep the process in mind as you’re creating one
  3. Event Calendar Newsletter story + startup hub in Hamilton, app created on the couch as drunked people threw darts here above their head. New definition of extreme Programming
  4. I waited until I sobered up to publicly release the plugin (and you probably should too… “don’t drink and launch”?) but releasing and maintaining it had some hurdles and things to think about… which is what I’ll be going over today.
  5. One thing we need to add to our plugin is a readme.txt file, which is required to submit to the wordpress.org plugin directory.
  6. The readme.txt file goes inside the root of your free plugin folder, and is just called… readme.txt
  7. You can see a sample readme.txt that you can copy and paste as a starting point, over on wordpress.org.
  8. This file includes things important things like the short and long description of our plugin Any installation notes to install your plugin A list of frequently asked questions or FAQs A description of any screenshots you include inside the assets folder of the SVN repository on wordpress.org once your plugin is approved And also a changelog detailing what changes have been made for each new version you release
  9. …don’t spam the tags by adding more than 12 tags, or putting any competitors’ plugins as a tag. This can get you removed from the wordpress.org plugin directory as it looks like you’re trying to game the plugin search system. You really don’t need more than 12, and just pick keywords that are relevant to your plugin.
  10. look at other plugin readme.txt files to get ideas on what tags you might add for your own plugin
  11. And last but not least don’t forget to validate your readme.txt file before you submit! You can edit it later before you do your initial push of your plugin, but it should validate for the plugin review team to see.
  12. It’s easy to do using the readme.txt validator over on wordpress.org
  13. There’s a number of rules to consider based on what your plugin is doing
  14. This includes any libraries, images, CSS, etc you include And you should include the images/CSS/javascript within the plugin, not hosted on your own site (in case it goes down and because you can track usage)
  15. No tracking of any kind without consent, even just what site URL the plugin is installed on It just can’t be turned on by default Wisdom plugin or Freemius Insights
  16. Can do this after getting their permission though Can have links to your site on your settings page in the admin area no problem
  17. Things like asking users for a 5-star review of your plugin, can do this at the appropriate time but must be dismisable
  18. No bitcoin mining After all this and other rules, they still reserve the right…
  19. The plugin directory team is awesome, they’re volunteers, and they really aren’t trying to make enemies and delete plugins at random. But you’re playing in their sandbox and they can remove your plugin at any time.
  20. There’s a number of rules to consider based on what your plugin is doing to keep in mind
  21. Ensure your readme.txt file is present and validated Package up the free plugin into a zip file, and be sure to remove the .git folder if you’ve already set up version control Submit the plugin for review Then once it’s approved, push the code up to SVN
  22. Before you submit you’ll want to make sure you have tested your plugin with WP_DEBUG turned on, to make sure there’s no warnings or errors.
  23. You’ll submit the plugin over on wordpress.org slash plugins slash add If you don’t already have a WordPress.org account, you’ll need to create one over on login.wordpress.org slash register.
  24. You can’t have any auto replies, like vacation messages, come from the email address in the wordpress.org account you’re using to submit the plugin. Otherwise you’ll get a warning if you’re lucky, but likely your plugin will be removed.
  25. Once you’ve created your account or logged in you’ll see the submission form. There’s just the 3 fields, the plugin name, a description of your plugin which you could grab from your readme file, and a link to download the zip. You can upload this wherever…
  26. Put the zip file wherever, easiest would probably be uploading it to one of your WordPress websites and grabbing the link to it from there.
  27. As they note on the form, the name of your plugin will get turned into a slug like this. While you could change the name of your plugin later, that url slug cannot be edited, so make sure there’s no typos and you’re happy with that name before submitting.
  28. Once you’ve submitted the form, now you wait. You can see how many plugins are in the queue waiting for review at the top of that form, but there’s no guaranteed timeline or anything. The plugin review team are volunteers so be patient.
  29. Once approved, you’ll get an SVN repository to submit your plugin files to with your plugin slug there. You’ll need to download and install SVN if you don’t have it already.
  30. You’ll start your initial submit by opening up terminal and typing svn co (for checkout), then the URL of your repository. This would be somewhere on your computer outside of your WordPress installation, in your-folder-name which can be whatever you want to call it.
  31. Inside of the folder you’ll have another folder called trunk. Inside of that…
  32. you’ll copy all your plugin files into it.
  33. Then back in the terminal window, type svn add trunk forward slash star, to add all of your plugin files.
  34. Lastly, you’ll commit and push the files up to wordpress.org by typing svn ci (for commit), -m for message, then in quotes your commit message. You should receive a message that the files were successfully committed, and after a few minutes if you go to…
  35. your plugin’s page on wordpress.org, you should see your plugin there with a link to download.
  36. Your free version is now released and available to anyone who searches for a WordPress plugin in Plugins > Add New
  37. You should also add at least a screenshot or two into the assets folder, and optionally an icon and header images if you have them or would like to make them. All of these make the plugin stand out when users are searching for it. There’s a link below the video with instructions on how to do that and what format it should be in…
  38. but basically in your SVN repository you’ll see an assets folder. Inside of that you’d put screenshots and name them
  39. screenshot-1.png, screenshot-2.png, and so on. You could also use .jpg files if you’d rather.
  40. Then in the readme.txt file, update the screenshots section with a description of each one.
  41. Then back in the terminal, add the assets to svn…
  42. And commit them along with the changes to your readme.txt file, with another svn ci command.
  43. 1.1 —- or whatever your new version number is
  44. Started with this…
  45. Copied trunk into tags/1.1
  46. Will keep doing that for future versions. Don’t HAVE to do this but it’s best practice to make it easy to get older versions of your plugin if needed (for testing purposes) and keep stuff organized
  47. Otherwise people won’t see your changes
  48. While you need to ultimately use SVN to push your changes up to wordpress.org, you can also use git during your normal development, then pull those changes into your SVN trunk folder
  49. Currently you have a repository with trunk folder, and your free plugin inside.
  50. After setup, you’ll also have a git repository inside of the trunk folder. This will make it easy to pull your changes from the git repo into SVN. Don’t have time to go through the whole process but that article gives all the details… and go through the exact commands for common tasks
  51. This causes the wordpress.org server to recreate all your .zip files for all your versions
  52. … If it’s not needed. ie. you have an admin page for your plugin settings or whatever, just add your css/js there
  53. … If it’s not needed. ie. you have an admin page for your plugin settings or whatever, just add your css/js there
  54. If you’re using newer features of PHP
  55. Let’s people extend your plugin without having to hack your codez
  56. You don’t have to do the translations! Others might do it for you
  57. For example with The Events Calendar Shortcode I added one underneath the Events menu of The Events Calendar
  58. And when you click on it….
  59. … you get to this Beautifully designed help page
  60. Don’t let this stop you from releasing a plugin though. Even major plugins can have major issues. Jetpack 4.x then 4.0.1 still broke things, finally 4.0.2 fixed. Just be available… don’t push a release, forget to include a required file, then go to a concert with terrible cell reception… not that I’VE ever done this… Breaking benjamin is a great band by the way
  61. They can do to Plugins > Add New and give it a go, very simple install process. Takes time but super valuable.
  62. Not all of these tips on the freemius article are recommended and could get you banned, like creating a new WordPress account username with the keywords you want… and it says so
  63. If my amazing write meow plugin…
  64. … still has fewer than 10 installs it’s a pretty hard thing to do. Older plugins are much more favoured over new ones.
  65. Takes time, but nothing beats being able to tell people they can go to Plugins > Add New, search for your plugin, and find it :)