Plugin Developer Handbook Chapter List
Thank you to everyone that commented and help me brainstorm what is needed for a good plugin developer handbook. Â I’ve synthesized that information and have come up with the following chapter list / section plan behind the jump. Â Please let me know if there is anything you think I missed. Â Remember, this handbook is designed specifically for the task of Plugin development. Â It’s not designed to be the end all, be all guide to WordPress. Â It’s designed to help new plugin developers get to the point that they can build a plugin and assist existing plugin developers with finding the best practices for doing things.
The next step is going to be to find authors for all of these sections. Â I’m going to be reaching out to a number of people to help out, but I’d also love to see some people volunteer. Â Please contact me @aaronjorbin on twitter or jorbin in IRC if you think you might be interested in writing a chapter or section. I’m going to be leaning on many of you, the experienced core developers and plugin developers.
-
Section 1: Before you code
- Introduction
- Explaining the structure, organization, purpose and how to use the handbook
- Languages of WP
- Explaing how each of the languages of WP is used and where to find out more information about each
- Planning your Plugin
- Setting the scope of the plugin, organizing files, and planning for how to make your plugin scale and grow
- Development enviroment
- Explaining the importance of using a development environment and share links to gain more information.
- Development Process
- The process of developing a plugin from idea to release
- How to Get Help
- A summary of the community resources (IRC, Forums, Mailing lists) available
- Version Control
- The importance of using VC and links to information on some of the more popular choices (SVN, GIT, HG).
-
Section 2: Coding Plugins:
- Coding Standards
- The WP coding standards and the importance of name spacing / other best practices
- WP Coding Philosophy
- Integrating the philosophies of WP into your plugin(Easy to use UI, extendable and changeable, options are bad)
- Actions and Filters
- How to interact with the options and filters already in WP, and also how to add and use them in your plugin
- Security / Data Validation
- How to not make your self look bad and cause harm/ annoyance to users
- Pluggable Functions
- How / when to override functions (and what functions are pluggable)
- Translations
- How to make your plugin translatable and assist translators
- Keeping your plugin consistent with the WP UI/UX
- Style Guide and other UI/UX things to look for
- Inline Documentation
- Why and how to write inline documentation
- What to do if you think you encountered a bug
- How to report a suspected bug
-
Section 3: Data Structures / Data Storage
- Overview of the data structures of WP
- Custom Post Types
- Custom Taxonomies
- Custom FIelds
- Comments (and comment meta)
- Users
-
Sec 4: WP Api’s
These will all follow a similar format to keep it consistent: PTUCER
- Philosophy – why this api exists
- Terms – The phrases and words used in this API that you need to know
- usage – The functions available
- cautions – things to watch out for and think about
- examples – Specific examples (preferably from actual plugins or core) of how to implement this
- resources – external links and other similar topics}
- Plugin Activation and Removal
- Short Codes
- Widgets
- AJAX
- Roles / Capabilities / Users
- Options / Settings
- Dashboard Widgets
- Admin Notices
- Scripts and Styles
- Transients
- Caching
- psuedo cron / scheduled events
- Remote URLs
- Atom / RSS
- Oembeds
- ‘post’ Metaboxes
- Tiny MCE
- Adding pages to the Admin
- Contexual Help
- WP_Rewrite
-
Section 5: After you Code
- Documentation
- Writing documentation for you users
- Adding your plugin to the extend directory
- Requirments to be listed and steps to make it happen
- Plugin Header
- The structure and fields available for plugin headers.
- Supporting / Maintaining your plugin
- How to provide support and help users after you have released your plugin
Stefano Petroni 5:39 pm on August 25, 2010 Permalink
Can’t wait to read it!
Thank you!
Jane Wells 7:23 pm on August 25, 2010 Permalink
It would be great for volunteer authors to leave a comment on this post rather than using twitter etc. so that we can keep a record here.
Alex M. 7:39 pm on August 25, 2010 Permalink
I assume you’ll want me to take oEmbed? If no one else steps up, I can also document some other APIs such as shortcodes, transients, or caching. My freetime is limited though, so don’t heap too much on me.
Aaron Jorbin 7:35 pm on August 26, 2010 Permalink
Alex, You were just the man I had in mind for oEmbed. I don’t want to over burden you, but may come back and ask for help on another after I’ve talked to a few others.
peterchester 1:22 am on August 26, 2010 Permalink
This is great! We’ve been working on bits and pieces of something like this at our company (Shane & Peter, Inc.) with the intent of ensuring that we all abide by the same coding conventions.
Is the idea behind this that developers would read the whole thing start to finish or that they would read a couple intro parts and use the rest of it as a look up index?
Aaron Jorbin 3:13 pm on August 27, 2010 Permalink
Section 1 is largely going to go over basics and outside of the introduction, should be skippable/skimmable by experienced developers.
Section 2 will hopefully be read by everyone. Section 3, pretty much the same though skimmable if you’re not storing any data.
Section 4 will largely be a reference section.
Section 5 will be used mostly for people releasing plugins publicly…which should be all plugin developers
mercime 8:21 pm on August 26, 2010 Permalink
Hi Aaron, perhaps in tips or dev section, add list of tools/arsenals to create a plugin. like basic text editor, poEdit, FF with Firebug and Web Dev extensions, etc. Or maybe that’s too basic?
Aaron Jorbin 9:14 pm on August 26, 2010 Permalink
That’s a bit more basic then I was aiming for, but I think that it will in part be up to the Authors.
Jacob Santos 8:53 pm on August 26, 2010 Permalink
Well, I could probably write the entire 5th section if you need a draft.
Aaron Jorbin 9:16 pm on August 26, 2010 Permalink
I’m going to Ping you in IRC one of these days. I think that at least one of the parts of Section 5 will be right up your alley.
Aaron Jorbin 9:17 pm on August 26, 2010 Permalink
One Additional Section I forgot to add (Section 6 or maybe Appendix A) will be a list of tips, tricks, and notes from a wide variety of developers. That will be assembled and worked on much later.
John P. Bloch 9:44 pm on August 26, 2010 Permalink
I’ve got WP_Rewrite like we discussed.
Stephanie Leary 9:53 pm on August 26, 2010 Permalink
I wrote a basic walkthrough of SVN for people who’ve never used SVN before as part of the plugin chapter in my WP book. It has a ton of screenshots using Versions for Mac and Tortoise for Windows. If it would be helpful, you can have it.
I think I also have the How to Get Help chunk.
Brian Layman 5:06 am on August 27, 2010 Permalink
I’m up for the Short Codes entry if you need someone. Or one of the two other sections we’d discussed if needed…
Jay Fortner 1:11 pm on August 27, 2010 Permalink
If you need anyone for Actions and Filters or Coding Standards – I’m here.
Marjorie Roswell 1:12 pm on September 17, 2010 Permalink
Could this be placed on a wiki, so that names could appear next to the actual chapters? Might make it easier to see what’s left to claim.