Transcript
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