Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Surgeon's Guide to Plugin Development

Andy Fragen
September 27, 2015

Surgeon's Guide to Plugin Development

WordCamp Los Angeles 2015

Andy Fragen

September 27, 2015
Tweet

More Decks by Andy Fragen

Other Decks in Technology

Transcript

  1. Surgical Aphorisms ❖ KISS - Keep It Simple (Stupid) ❖

    The enemy of good is better ❖ Should you really do that? ❖ Learn from others ❖ You are "captain of the ship"
  2. Tools of the Trade DesktopServer PHPStorm GitHub, Bitbucket, GitLab, etc.

    Tower - towerapp.com Google, GitHub, WordPress forums
  3. Scratching Your Own Itch ❖ What problem do I want

    to solve? ❖ Does a solution already exist? ❖ Do current solutions work for you? ❖ DIY
  4. Plugin Development ❖ Identify scope of project ❖ Start coding,

    preference to OOP ❖ Ask questions ❖ Constantly lookup and learn ❖ Core is your best reference
  5. Core is your friend ❖ Transients API ❖ Settings API

    ❖ add_action()/do_action() ❖ add_filter()/apply_filters()
  6. WordPress.org Plugin Repo ❖ The Events Calendar Category Colors ❖

    The Events Calendar PRO Alarm ❖ The Events Calendar User CSS ❖ The Events Calendar Outlook Import Fix ❖ Add Custom Header Images
  7. My Goals for GitHub Updater ❖ Simple barrier to entry

    ❖ Work within core as much possible ❖ Update both plugins and themes
  8. Plugin Requirements for GitHub Updater /*
 Plugin Name: GitHub Updater


    Plugin URI: https://github.com/afragen/github-updater
 Description: A plugin to automatically update GitHub, Bitbucket or GitLab hosted plugins and themes. It also allows for remote installation of plugins or themes into WordPress. Version: 1.0.0
 Author: Andy Fragen
 License: GNU General Public License v2
 License URI: http://www.gnu.org/licenses/gpl-2.0.html
 Domain Path: /languages
 Text Domain: github-updater
 GitHub Plugin URI: https://github.com/afragen/github-updater
 GitHub Branch: master
 */

  9. Current State of GitHub Updater ❖ Seamless updates for plugins

    and themes ❖ Works in single or multisite ❖ Works with GitHub, Bitbucket, and GitLab ❖ Works with public and private repositories ❖ Changelogs, readme.txt, view details, ratings, etc. ❖ Rollback for themes ❖ Settings page ❖ Allows for remote installation of plugins or themes ❖ Branch switching/re-installation for plugins/themes ❖ Integrates with iThemes Sync and InfiniteWP
  10. WhoAmI ❖ http://thefragens.com ❖ @andyfragen - Twitter ❖ https://github.com/afragen ❖

    Day job, trauma/acute care surgeon ❖ Chief of Staff, Desert Regional Medical Center, Palm Springs, CA ❖ WordCamp sponsor and now speaker