Writing Your First WordPress Plugin
-
Upload
mark-jaquith -
Category
Technology
-
view
3.511 -
download
2
description
Transcript of Writing Your First WordPress Plugin
![Page 1: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/1.jpg)
Writing Your First Plugin
by Mark Jaquith
@markjaquithmarkjaquith.com
Saturday, August 21, 2010
![Page 2: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/2.jpg)
Assumptions
•You know PHP syntax
•You’re targeting PHP 5
Saturday, August 21, 2010
![Page 3: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/3.jpg)
What I want you to learn
•Plugins change what WordPress does
•They rely on the concepts of actions and filters
•There are numerous internal WordPress APIs for you to use
Saturday, August 21, 2010
![Page 4: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/4.jpg)
What is a Plugin?
•PHP code that sits in separate files
•Integrates tightly with WordPress
•Can add, alter, or remove functionality
Saturday, August 21, 2010
![Page 5: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/5.jpg)
Where?• wp-content/plugins/name.php
• wp-content/plugins/folder/name.php
• WordPress only looks one level deep
• It looks for .php files with a plugin header
Saturday, August 21, 2010
![Page 6: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/6.jpg)
Plugin Header
“Plugin Name” is required.
Saturday, August 21, 2010
![Page 7: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/7.jpg)
Basic Structure
•Build some stuff
•Tell WordPress to use that stuff when WordPress does certain stuff
Saturday, August 21, 2010
![Page 8: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/8.jpg)
Actions•Triggered when various things
happen in WordPress core
•“Wakes up” code you’ve registered against that action
Saturday, August 21, 2010
![Page 9: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/9.jpg)
Actions
Saturday, August 21, 2010
![Page 10: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/10.jpg)
Actions
Saturday, August 21, 2010
![Page 11: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/11.jpg)
Filters•WordPress passes data to your
code
•Your code optionally changes the data, then returns it to WordPress
Saturday, August 21, 2010
![Page 12: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/12.jpg)
Filters
Saturday, August 21, 2010
![Page 13: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/13.jpg)
Filters
Saturday, August 21, 2010
![Page 14: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/14.jpg)
How to organize your plugin
Saturday, August 21, 2010
![Page 15: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/15.jpg)
Saturday, August 21, 2010
![Page 16: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/16.jpg)
Saturday, August 21, 2010
![Page 17: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/17.jpg)
Prefix
cws_spn_function_name()
Saturday, August 21, 2010
![Page 18: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/18.jpg)
Singleton
Saturday, August 21, 2010
![Page 19: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/19.jpg)
Singleton variation
Saturday, August 21, 2010
![Page 20: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/20.jpg)
Most ImportantAction in WordPress
initSaturday, August 21, 2010
![Page 21: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/21.jpg)
Let’s build a plugin!
• Insert mailing address and phone number into a post or a page
• Use a shortcode... [address]
• Configurable address and phone number
• Option to show phone number by default (or not)
• Ability to override the phone number default
Saturday, August 21, 2010
![Page 22: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/22.jpg)
Saturday, August 21, 2010
![Page 23: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/23.jpg)
Saturday, August 21, 2010
![Page 24: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/24.jpg)
Saturday, August 21, 2010
![Page 25: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/25.jpg)
Saturday, August 21, 2010
![Page 26: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/26.jpg)
Saturday, August 21, 2010
![Page 27: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/27.jpg)
Saturday, August 21, 2010
![Page 28: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/28.jpg)
Saturday, August 21, 2010
![Page 29: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/29.jpg)
Saturday, August 21, 2010
![Page 30: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/30.jpg)
Settings form handle
Setting name
Saturday, August 21, 2010
![Page 31: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/31.jpg)
Section handle
TitleContent callback
Settings form handle
Saturday, August 21, 2010
![Page 32: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/32.jpg)
HTML id
Title
Content callback
Settings form handle
Section handle
Saturday, August 21, 2010
![Page 33: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/33.jpg)
Saturday, August 21, 2010
![Page 34: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/34.jpg)
Saturday, August 21, 2010
![Page 35: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/35.jpg)
Saturday, August 21, 2010
![Page 36: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/36.jpg)
Saturday, August 21, 2010
![Page 37: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/37.jpg)
Saturday, August 21, 2010
![Page 38: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/38.jpg)
Saturday, August 21, 2010
![Page 39: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/39.jpg)
Saturday, August 21, 2010
![Page 40: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/40.jpg)
Saturday, August 21, 2010
![Page 41: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/41.jpg)
Saturday, August 21, 2010
![Page 42: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/42.jpg)
Saturday, August 21, 2010
![Page 43: Writing Your First WordPress Plugin](https://reader034.fdocuments.us/reader034/viewer/2022051412/54b3bdd04a7959780a8b4574/html5/thumbnails/43.jpg)
Saturday, August 21, 2010