62
Plugin Development - Joey Kudish http://slides.jkudish.com Friday, 11 January, 13

WordCamp Victoria 2013: Plugin Development 2013

Embed Size (px)

DESCRIPTION

This is a presentation from WordCamp Victoria 2013 where I show power users and novice developers how to get started with plugin development. I think a lot of people don’t realize how easy it is to get started with plugin development or just how small and simple can be. It doesn’t require 100s of lines of code… Many WordPress tutorials out there talk about copy this or that to your functions.php file in your theme. However, it’s just as easy to create your own functionality plugin; which makes for easier to maintain code in the future that isn’t theme dependant. I begin this talk with the basics of what a plugin is and how it’s structured. I then explain the hooks (actions and filters API), followed by a very simplistic demo. I then give some pro tips and talk about some of the most commonly used WordPress APIs in plugins, as well as promote coding standards. A second more in-depth demo is then presented. Finally, I discuss security in plugins and share some resources for developers and users to further learn from.

Citation preview

Page 1: WordCamp Victoria 2013: Plugin Development 2013

Plugin Development

- Joey Kudish

http://slides.jkudish.comFriday, 11 January, 13

Page 2: WordCamp Victoria 2013: Plugin Development 2013

About me

• WordPress developer since 2007

• Initially built sites for a variety of clients

• Freelance plugin development

• Code Wrangler at WordPress.com / Automattic

since May 2011

• Originally from Montreal, moved to Vancouver

in 2011

Friday, 11 January, 13

Page 3: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 4: WordCamp Victoria 2013: Plugin Development 2013

What’s a plugin?

Friday, 11 January, 13

Page 5: WordCamp Victoria 2013: Plugin Development 2013

A plugin extends or modi!es WordPress to do something it

didn’t previously do

Friday, 11 January, 13

Page 6: WordCamp Victoria 2013: Plugin Development 2013

Themes can act as plugins. Oh and there’s

mu-plugins too.

Friday, 11 January, 13

Page 7: WordCamp Victoria 2013: Plugin Development 2013

Plugins can be huge...

Friday, 11 January, 13

Page 8: WordCamp Victoria 2013: Plugin Development 2013

... or tiny.Friday, 11 January, 13

Page 9: WordCamp Victoria 2013: Plugin Development 2013

What’s in a plugin?

Friday, 11 January, 13

Page 10: WordCamp Victoria 2013: Plugin Development 2013

Where does it go?

wp-content/plugins/[plugin_name]or wp-content/mu-plugins/

Friday, 11 January, 13

Page 11: WordCamp Victoria 2013: Plugin Development 2013

In order to “hook” into WordPress, we use action and !lter

hooks

Friday, 11 January, 13

Page 12: WordCamp Victoria 2013: Plugin Development 2013

Action hooks allow you to add your own code to WordPress’

call stack

Friday, 11 January, 13

Page 13: WordCamp Victoria 2013: Plugin Development 2013

Filter hooks allow you to modify an

existing variable or piece of information

Friday, 11 January, 13

Page 14: WordCamp Victoria 2013: Plugin Development 2013

Demo time

Friday, 11 January, 13

Page 15: WordCamp Victoria 2013: Plugin Development 2013

Let’s add Google Webmaster Tools

veri!cation to our site

Friday, 11 January, 13

Page 16: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 17: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 18: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 19: WordCamp Victoria 2013: Plugin Development 2013

Finding hooks• WordPress.org Codex (http://

codex.wordpress.org/)

• http://adambrown.info/p/wp_hooks

• Debug Bar + Debug Bar Action Hooks plugin

(http://wordpress.org/extend/plugins/debug-bar-

action-hooks/)

• Search core (use your IDE or a command line

tool like ack)

Friday, 11 January, 13

Page 20: WordCamp Victoria 2013: Plugin Development 2013

Some pro tips

Friday, 11 January, 13

Page 21: WordCamp Victoria 2013: Plugin Development 2013

Use built-in APIs, don’t re-invent the

wheel

Friday, 11 January, 13

Page 22: WordCamp Victoria 2013: Plugin Development 2013

Use WordPress coding standards

Friday, 11 January, 13

Page 23: WordCamp Victoria 2013: Plugin Development 2013

Be nice to other devs. Namespace your classes

and functions. Leave hooks for others.

Friday, 11 January, 13

Page 24: WordCamp Victoria 2013: Plugin Development 2013

Demo time

Friday, 11 January, 13

Page 25: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 26: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 27: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 28: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 29: WordCamp Victoria 2013: Plugin Development 2013

hey that’s the !le we want to hook into

Friday, 11 January, 13

Page 30: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 31: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 32: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 33: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 34: WordCamp Victoria 2013: Plugin Development 2013

Let’s create our plugin

Friday, 11 January, 13

Page 35: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 36: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 37: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 38: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 39: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 40: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 41: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 42: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 43: WordCamp Victoria 2013: Plugin Development 2013

It works, now let’s have some fun

Friday, 11 January, 13

Page 44: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 45: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 46: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 47: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 48: WordCamp Victoria 2013: Plugin Development 2013

Finished plugin

Friday, 11 January, 13

Page 49: WordCamp Victoria 2013: Plugin Development 2013

A word on Security

Friday, 11 January, 13

Page 50: WordCamp Victoria 2013: Plugin Development 2013

don’t trust users

Friday, 11 January, 13

Page 51: WordCamp Victoria 2013: Plugin Development 2013

sanitize input, escape output

http://codex.wordpress.org/Data_Validation

Friday, 11 January, 13

Page 52: WordCamp Victoria 2013: Plugin Development 2013

protect users from malicious attacks,

use nonces to validate user actions

http://codex.wordpress.org/WordPress_Nonces

Friday, 11 January, 13

Page 53: WordCamp Victoria 2013: Plugin Development 2013

Plugin Distribution

Friday, 11 January, 13

Page 54: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 55: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 56: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 57: WordCamp Victoria 2013: Plugin Development 2013

Further reading

Friday, 11 January, 13

Page 58: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 59: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 60: WordCamp Victoria 2013: Plugin Development 2013

Friday, 11 January, 13

Page 62: WordCamp Victoria 2013: Plugin Development 2013

Thanks!

Q&Ahttp://slides.jkudish.com

Friday, 11 January, 13