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
place your plugin here
11/10/2008
Wordpress Plugin Development ‐ A Short Tutorial
css
images
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
Event
Action 11/10/2008
Wordpress Plugin Development ‐ A Short Tutorial
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