plugin development - wordpress.com• wordpress developer since 2007 • initially built sites for a...
TRANSCRIPT
![Page 1: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/1.jpg)
Plugin Development
- Joey Kudish
http://slides.jkudish.com
![Page 2: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/2.jpg)
About me
• WordPress developer since 2007
• Initially built sites for a variety of clients + plugin
development
• Code Wrangler at WordPress.com / Automattic
since May 2012
• Originally from Montreal, moved to Vancouver
in 2011
![Page 3: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/3.jpg)
![Page 4: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/4.jpg)
What’s a plugin?
![Page 5: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/5.jpg)
A plugin extends or modi!es WordPress to do something it
didn’t previously do
![Page 6: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/6.jpg)
Themes can act as plugins. Oh and there’s
mu-plugins too.
![Page 7: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/7.jpg)
Plugins can be huge...
![Page 8: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/8.jpg)
... or tiny.
![Page 9: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/9.jpg)
What’s in a plugin?
![Page 10: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/10.jpg)
Where does it go?
wp-content/plugins/[plugin_name]or wp-content/mu-plugins/
![Page 11: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/11.jpg)
In order to “hook” into WordPress, we use action and !lter
hooks
![Page 12: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/12.jpg)
Action hooks allow you to add your own code to WordPress’
call stack
![Page 13: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/13.jpg)
Filter hooks allow you to modify an
existing variable or piece of information
![Page 14: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/14.jpg)
Demo time
![Page 15: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/15.jpg)
Let’s add Google Webmaster Tools
veri!cation to our site
![Page 16: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/16.jpg)
![Page 17: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/17.jpg)
![Page 18: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/18.jpg)
![Page 19: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/19.jpg)
![Page 20: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/20.jpg)
Finding hooks• The best way is to get to know/search core (use
an IDE or a command line tool like ack)
• 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/)
![Page 21: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/21.jpg)
Some pro tips
![Page 22: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/22.jpg)
Use built-in APIs, don’t re-invent the
wheel
![Page 23: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/23.jpg)
Use WordPress coding standards
![Page 24: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/24.jpg)
Be nice to other devs. and to your users Namespace your
classes and functions. Leave hooks for others.
![Page 25: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/25.jpg)
Demo time
![Page 26: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/26.jpg)
![Page 27: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/27.jpg)
![Page 28: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/28.jpg)
![Page 29: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/29.jpg)
hey that’s the !le we want to hook into
![Page 30: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/30.jpg)
![Page 31: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/31.jpg)
![Page 32: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/32.jpg)
Let’s create our plugin
![Page 33: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/33.jpg)
![Page 34: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/34.jpg)
![Page 35: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/35.jpg)
![Page 36: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/36.jpg)
![Page 37: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/37.jpg)
![Page 38: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/38.jpg)
![Page 39: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/39.jpg)
It works, let’s look at the
!nished plugin
![Page 40: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/40.jpg)
![Page 41: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/41.jpg)
A few words on Security
![Page 42: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/42.jpg)
Don’t trust users
![Page 43: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/43.jpg)
Sanitize input; escape output
http://codex.wordpress.org/Data_Validation
![Page 44: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/44.jpg)
Protect users from malicious attacks;
use nonces to validate user actions
http://codex.wordpress.org/WordPress_Nonces
![Page 45: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/45.jpg)
Use the built-in APIs and functions unless you
absolutely can’t. Keep re-usability in mind and avoid custom tables if possible.
![Page 46: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/46.jpg)
Plugin Distribution
![Page 47: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/47.jpg)
![Page 48: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/48.jpg)
![Page 49: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/49.jpg)
![Page 50: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/50.jpg)
Further reading
![Page 51: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/51.jpg)
![Page 52: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/52.jpg)
![Page 53: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/53.jpg)
![Page 54: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/54.jpg)
Keep up with the Community
WordCamps/MeetupsWordPress.tv
WP DAILYWP TAVENWP REALMTWITTER
etc.
![Page 55: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/55.jpg)
http://www.wrox.com/WileyCDA/WroxTitle/Professional-WordPress-Plugin-Development.productCd-0470916222.html
http://www.packtpub.com/wordpress-plugin-development-cookbook/book
![Page 56: Plugin Development - WordPress.com• WordPress developer since 2007 • Initially built sites for a variety of clients + plugin development • Code Wrangler at WordPress.com / Automattic](https://reader035.vdocuments.mx/reader035/viewer/2022062610/6108a33879c1db4b0008c405/html5/thumbnails/56.jpg)
Thanks Winnipeg!
Q&Ahttp://slides.jkudish.com