The first steps…

• Pre‐development issues
– Wordpress Plugin Directory – Plugin and File Names – File Headers

• Wordpress Plugin Hooks 
– Actions  – Filters

• Adding data to wordpress database
– Creating tables with plugins

• Adding Administration Menus
– Creating options page

• “Hello Dolly” example
11/10/2008 Wordpress Plugin Development ‐ A Short  Tutorial 2

Pre‐development issues (1)
Wordpress Plugin Directory 
code

javascript

wp‐content

plugins

your plugin

css

place your plugin here

images

11/10/2008

Wordpress Plugin Development ‐ A Short  Tutorial

3

Pre‐development issues (2)
Plugin and File Names
Choose  your  plugin’s name  carefully.  Think  about  what the plugin will do, and make a, hopefully unique,  name for it. 

It is good for the names of your php files to be derived  from your chosen plugin name.

11/10/2008

Wordpress Plugin Development ‐ A Short  Tutorial

4

Pre‐development issues (3)
File Headers

11/10/2008

Wordpress Plugin Development ‐ A Short  Tutorial

5

Wordpress Plugin Hooks (1)
Hooks are provided to allow your plugin to 'hook into' the rest of WordPress; that is, to call functions in your plugin at specific times, and thereby set your plugin in motion.

Hooks

11/10/2008

Wordpress Plugin Development ‐ A Short  Tutorial

6

Wordpress Plugin Hooks (2)
Hooks = Actions + Filters
Actions are triggered by specific events (e.g. publishing a post ) that take place in WordPress. Your plugin can respond to the event by executing a PHP function

Action
11/10/2008 Wordpress Plugin Development ‐ A Short  Tutorial

Event
7

Wordpress Plugin Hooks (3)
Hooks = Actions + Filters
Filters - Functions

DATA

Filters are functions that WordPress passes data through at certain points in execution, just before taking some action with the data such as adding it to the database or sending it to the browser screen.
11/10/2008 Wordpress Plugin Development ‐ A Short  Tutorial 8

Adding data to Wordpress database
Create tables with plugins
There are two types of information you could store • Setup Information: user choices that are entered when the user first sets up your plugin. • Data: information that is added as the user continues to use your plugin Steps… 1. Write a PHP function that creates the table. 2. Ensure that WordPress calls the function when the plugin is activated. 3. Create an upgrade function, if a new version of your plugin needs to have a different table structure.

http://codex.wordpress.org/Creating_Tables_with_Plugins#Create_Database_Tables
11/10/2008 Wordpress Plugin Development ‐ A Short  Tutorial 9

A simple example
$table_name = $wpdb->prefix . "liveshoutbox";

// check if there is a table with the same name
if($wpdb->get_var("show tables like '$table_name'") != $table_name) {

// SQL Statement
$sql = "CREATE TABLE " . $table_name . " ( id mediumint(9) NOT NULL AUTO_INCREMENT, time bigint(11) DEFAULT '0' NOT NULL, name tinytext NOT NULL, text text NOT NULL, url VARCHAR(55) NOT NULL, UNIQUE KEY id (id) );";

// Creating the table
require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); dbDelta($sql);

A simple example
$welcome_name = "Mr. Wordpress"; $welcome_text = "Congratulations, you just completed the installation!";

// SQL Statememt
$insert = "INSERT INTO " . $table_name . " (time, name, text) " . "VALUES ('" . time() . "','" . $wpdb->escape($welcome_name) . "','" . $wpdb->escape($welcome_text) . "')";

// Adding Data into the table
$results = $wpdb->query( $insert );

Adding Administration Menus
Create options page
Top-level menus: Settings, Manage, Plugins, Presentation, Write, Users

Admin Menu Functions • add_menu_page: create a top-level menu • add_submenu_page: define one or more sub-menu pages In the above wordpress functions the developers defined the name of their php functions which are responsible to build the options pages. See an example here http://codex.wordpress.org/Creating_Options_Pages

11/10/2008

Wordpress Plugin Development ‐ A Short  Tutorial

12

Hello Dolly example

Hello Dolly Lyrics

Chose randomly one lyric and place it the upper right of your Administation panels

add_action('admin_footer', 'hello_dolly');

11/10/2008

Wordpress Plugin Development ‐ A Short  Tutorial

13

Wordpress Development Community
Are you ready to enter into an evolving development community?

11/10/2008

Wordpress Plugin Development ‐ A Short  Tutorial

14

Matt Mullenweg
Creator of Wordpress.org

14th place
The 25 most influential people on the web (2008)

11/10/2008

Wordpress Plugin Development ‐ A Short  Tutorial

15

More details on the internet…
The truth is out there…
http://codex.wordpress.org/Writing_a_Plugin#WordPress_Plugin_Hooks http://codex.wordpress.org/Plugin_API http://codex.wordpress.org/Creating_Tables_with_Plugins http://codex.wordpress.org/Adding_Administration_Menus

11/10/2008

Wordpress Plugin Development ‐ A Short  Tutorial

16

THE END

Thank you!
11/10/2008 Wordpress Plugin Development ‐ A Short  Tutorial 17