WordPress Boston June 2016 Meetup - Linchpin president Aaron Ware discussed the steps to take your plugin from inception to deployment, along with the process it takes to release it to the community at large.
2. AARONWARE
PRESIDENT@LINCHPIN
Nearly 20 years as a Web Professional
8ish years using WordPress
(right around WP 2.0)
I lead an awesome team at Linchpin.
We have some plugins on WordPress.org
One of them I am going to talk about shortly
@aware on WordPress.org and on Slack
@aaronware on Twitter
@bostonwp
@aaronware
@linchpin_agency
13. WordPress.org Plugin Repo
WILLINGNESSTOPARTICIPATE
▸ Are you willing to answer questions about your plugin?
▸ Are you willing to fix issues that come up?
▸ Are you open to feature requests?
▸ Are you willing to Open Source your plugin? (It’s required)
▸ Are you open to haters hating?
@bostonwp
@aaronware
@linchpin_agency
14. WordPress.org Plugin Repo
MORESTUFF
▸ The plugin must not do anything illegal, or be morally offensive (that’s subjective,
we know).
▸ The plugin must not embed external links on the public site (like a "powered by"
link) without explicitly asking the user's permission.
▸ They also have a large list of detailed guidelines, but mostly they say how not to be
a spammer.
@bostonwp
https://wordpress.org/plugins/about/
@aaronware
@linchpin_agency
15. Getting Ready To Rumble
IFYOU’RECOOLWITHTHEPREVIOUSITEMS….
Are you pumped or what?
@bostonwp http://giphy.com/gifs/kids-warrior-ultimate-DrTJN2J8fzaA8
▸ Is the Ultimate Warrior even wearing pants?
▸ That kid at the end has a sweet cowboy hat
@aaronware
@linchpin_agency
18. WordPress Foundation Stance on GPL
WHATISGPL?
The GPL is a copyleft license, which means that derived works can only be distributed
under the same license terms. This is in distinction to permissive free software
licenses, of which the BSD licenses and the MIT License are the standard examples.
https://en.wikipedia.org/wiki/GNU_General_Public_License
https://www.gnu.org/licenses/gpl.html
@aaronware
@linchpin_agency
@bostonwp
19. WordPress Foundation Stance on GPL
HOWDOESGPLAFFECTMYPLUGINONWORDPRESS.ORG?
The WordPress Foundation considers all plugins and themes listed on WordPress.org
as derivative work of WordPress as such. Plugins and Themes released on on
WordPress.org are have the GPLv2 and above license automatically applied to them
upload submission to the .org repo.
https://wordpress.org/about/license/
▸ Your plugin must be compatible with the GNU General Public License v2, or any later
version. We strongly recommend using the same license as WordPress — “GPLv2 or
later.”
▸ If you don’t specify a compatible license, what you check in is considered GPLv2 or
later.
@aaronware
@linchpin_agency
@bostonwp
23. readme.txt continued…
STARTINGNEW,GETTINGINSPIRATIONORGENERATING
▸ You can manually edit the file shared in the previous slide.
▸ Get inspiration from some popular plugin’s readme.txt files for examples
See: https://wordpress.org/plugins/stream/ <— I think it’s a great example
▸ Use Generate WP: https://generatewp.com/plugin-readme/
@aaronware
@linchpin_agency
@bostonwp
25. i18n l10n
LOCALIZATION,INTERNATIONALIZATIONANDTRANSLATION
▸ Your plugin can be translation ready in just a few steps
▸ Updating your Plugin Header to include a text domain and domain path (optional)
▸ Use the WordPress gettext methods for String output of your plugin.
Think _e(‘hello Dolly’, ‘my-plugin’); vs echo “Hello Dolly”;
▸ Use Poedit, Grunt and Glotpress to allow for translation
https://developer.wordpress.org/plugins/internationalization/how-to-internationalize-your-plugin/
https://developer.wordpress.org/reference/functions/load_plugin_textdomain/
26. i18n l10n
LOCALIZATION,INTERNATIONALIZATIONANDTRANSLATION
▸ An example .pot file based used in translation
https://developer.wordpress.org/plugins/internationalization/how-to-internationalize-your-plugin/
https://developer.wordpress.org/reference/functions/load_plugin_textdomain/
https://make.wordpress.org/polyglots/handbook/tools/poedit/
27. Visual Elements
ASSETSFOLDER
The assets/ folder of your plugin will house banners, icons and screenshots of your
plugin. These assets will be displayed within the .org plugins directory and within the
WordPress dashboard.
28. More Info About Assets
IMAGESIZES
▸ Start by creating an assets/ directory in the root of your SVN checkout (if one doesn't
already exist). This will be on the same level as tags/ and trunk/, for example.
▸ Inside that assets/ directory, you can make a file named banner-772x250.png or
banner-772x250.jpg. The image must be exactly 772 pixels wide and 250 pixels tall. No
GIFs.
▸ To support high-DPI (aka 'retina') displays, you can additionally make a file named
banner-1544x500.png or banner-1544x500.jpg. The image must be exactly 1544 pixels
wide and 500 pixels tall. No GIFs. This image, if present, will only be served when the
website detects that the viewing browser is on a high-DPI display. Read this feature’s
announcement post for more details and special notes about creating this image.
29. Initial Plugin Submission
NOTALOTOFREQUIREMENTS
▸ Plugin Name
▸ Plugin Description
▸ A valid .zip of your plugin that
also include a read file
▸ Volunteers do the initial review
so be patient
@aaronware
@linchpin_agency
@bostonwp
32. Svn And The .Org Repo
MAKINGCOMMITSTOWORDPRESS.ORG
▸ WordPress.org is a plugin host not just a directory. In order to handle releases we
have to play within the rules of the sand box.
▸ Once created you will use your wordpress.org credentials to also log into your repo
▸ SVN while different in how it works, it is similar to git in that they are both
versioning systems.
▸ I wont get into the complexities of mirroring .git to .svn because I’m not an expert.
@aaronware
@linchpin_agency
@bostonwp
33. Svn And The .Org Repo
YOURFIRSTCHECKOUT.PUTTINGTHINGSINTHETRUNK
@aaronware
@linchpin_agency
@bostonwp
Trunk is similar to master (in git)
34. Svn And The .Org Repo
YOUCAN“TAG”STABLERELEASESTOKEEPORGANIZED
@aaronware
@linchpin_agency
@bostonwp
35. Svn And The .Org Repo
YOUCANALSOUSEBRANCHESFORDEVELOPMENTASWELL
@aaronware
@linchpin_agency
@bostonwp
▸ This is useful for beta releases.
▸ Also good practice in general.
▸ Personally I only ever use Tags and Trunk
▸ I have a deploy script I wrote in Grunt to create a package for wordpress.org
with out off my build scripts
36. Sharing Is Caring
PROMOTINGYOURPLUGIN
▸ Meet Ups are great for feedback prior to release (or post release)
▸ WordPress Advanced Users Group on Facebook
▸ Reaching out to WP Tavern and other online publications
▸ Jetpack.pro
@bostonwp
@aaronware
@linchpin_agency
38. Useful Things
STARTINGFROMSCRATCHANDMORETOOLS
▸ Pluginception: https://wordpress.org/plugins/pluginception/
▸ generator-wp-make: https://github.com/10up/generator-wp-make
▸ Poedit
▸ Have you checked out the WordPress Coding Standards?
https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards
▸ What do you guys use?
@aaronware
@linchpin_agency
40. AARONWARE
PRESIDENT@LINCHPIN
Nearly 20 years as a Web Professional
8ish years using WordPress
(right around WP 2.0)
I lead the awesome team at Linchpin.
We have some plugins on WordPress.org
One of them I am going to talk about shortly
@aware on WordPress.org and on Slack
@aaronware on Twitter
@bostonwp
@aaronware
@linchpin_agency