Creating Wordpress Plugins Who is Here? • PHP GTA Meetup • Wordpress Toronto Meetup • East Toronto Web Design Meetup About Me – Peter Meth • • • • • Degree in Computer Science Full time web application developer Also do websites, hosting, consulting PHP, MySQL, HTML, CSS, Javascript Wordpress, Joomla What is Wordpress? • Most popular Blogging System in the World • Most popular Content Management System in the World • Used by 13% of the world's top million websites • It’s free and Open Source What is a Plugin? • Add functionality without changing core files • Use Wordpress API to interact with Wordpress • Not overwritten when Wordpress gets updated • 13,000+ Free Plugins on Wordpress.org • Commercial Plugins also available Why Create Plugins for Wordpress? • Add functionality for existing Wordpress users • Take advantage of Wordpress security, stability, infrastructure, templates • Exposure to a huge userbase • You may have your own reasons Naming & File Structure • Give your plugin a unique name • Create a main php file • You can create your own directory structure • gets installed in plugins directory: – {pathtowordpress}/wp-content/plugins/ Standard Header <?php /* Plugin Name: Name Of The Plugin Description: A brief description of the Plugin. .. .. */ ?> Activating Your Plugin • Copy all files to – {pathtowordpress}/wp-content/plugins/ • Load the wordpress admin http://www.yoursite.com/wordpress/wp-admin • go to the Plugins menu, click Activate • Let’s have a look... Filters • Filters change text as it gets written or processed • add_filter('hook_name','myfilter') function myfilter($content) { ... return $content; } http://codex.wordpress.org/Plugin_API#Filters • Let’s have a look... Actions • Actions are the steps that Wordpress takes to create a page • add_action('hook_name','myaction') function myaction() { ... } http://codex.wordpress.org/Plugin_API#Actions Creating a Menu • Create a new function • call add_menu_page(..) within it • add your function to the admin_menu action add_action('admin_menu','mymenu'); • use if(is_admin()) for safety • Let’s have a look... Creating a Settings Page • • • • • • Create a function that outputs a form In the form set action=“options.php” call settings_fields(..) inside your form register your fields register_setting(..) use get_option(..) to retrieve values Let’s have a look... Other Ways to Manage Data • Create your own tables and forms • Use Wordpress built in Options mechanism • Use Custom Fields mechanism to add fields to Posts • Beyond Scope of this presentation Want More Information? • http://wordpress.org/extend/plugins • http://codex.wordpress.org • http://www.lynda.com – (paid videos) • http://www.wpplugins.com – (commercial plugins) • B2Template plugin by Dan Imbrogno Questions & Answers