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