Advertisement

Creating and Maintaining WordPress Plugins

WordPress Developer at Covered Web Services LLC
Feb. 4, 2012
Advertisement

More Related Content

Advertisement
Advertisement

Creating and Maintaining WordPress Plugins

  1. Creating and Mark Jaquith “JAKE-with” Maintaining WordPress @markjaquith Plugins mark@jaquith.me markjaquith.com
  2. Why? Pa erns! Repo… Sanity.
  3. Why make plugins
  4. functions.php is not the new my-hacks.php
  5. Plugins separate functionality from core and themes
  6. Plugins comparmentalize your code
  7. Plugins [comparmentalize] your code
  8. Plugins [compart][mentalize] your code
  9. Pa erns
  10. <?php /* Plugin Name: NAME */
  11. Encapsulate with CLASS
  12. function your_initials_long_plugin_name_do_thing() vs. function do_thing()
  13. <?php /* Plugin Name: NAME */ class CWS_ATL_Plugin { static $instance; function __construct() { self::$instance = $this; add_action( 'plugins_loaded', array( $this, 'plugins_loaded' ) ); } function plugins_loaded() { // Add actions and hooks here } } new CWS_ATL_Plugin;
  14. function plugins_loaded() { add_filter( 'the_title', array( $this, 'the_title' ), 10, 2 ); add_action( 'init', array( $this, 'init' ), 5 ); add_action( 'omg', array( $this, 'is_really_tedious' ), 11, 3 ); }
  15. if(!class_exists('CWS_Plugin_v2')) {class CWS_Plugin_v2{function hook($h){$p=10;$m=$this- >sanitize_method($h); $b=func_get_args();unset($b[0]);fo reach((array)$b as $a) {if(is_int($a))$p=$a;else $m=$a;} return add_action($h,array($this, $m),$p,999);}private function sanitize_method($m){return str_replace(array('.','-'),array(' _DOT_','_DASH_'),$m);}}}
  16. <?php /* Plugin Name: NAME */ if(!class_exists('CWS_Plugin_v2')){class CWS_Plugin_v2{function hook($h){$p=10;$m=$this- >sanitize_method($h);$b=func_get_args();unset($b[0]);foreach((array)$b as $a){if(is_int($a))$p=$a;else $m=$a;}return add_action($h,array($this,$m),$p,999);}private function sanitize_method($m){return str_replace(array('.','-'),array('_DOT_','_DASH_'),$m);}}} class CWS_ATL_Plugin extends CWS_Plugin_v2 { static $instance; function __construct() { self::$instance = $this; $this->hook( 'plugins_loaded' ); } function plugins_loaded() { // Add actions and hooks here } } new CWS_ATL_Plugin;
  17. // BEFORE function plugins_loaded() { add_filter( 'the_title', array( $this, 'the_title' ), 10, 2 ); add_action( 'init', array( $this, 'init' ), 5 ); add_action( 'omg', array( $this, 'is_really_tedious' ), 11, 3 ); } // AFTER function plugins_loaded() { $this->hook( 'the_title' ); $this->hook( 'init', 5 ); $this->hook( 'omg', 'is_really_tedious', 3 ); }
  18. Defer actions
  19. Options in an array
  20. const OPTIONS = 'my_plugin_option_name'; function get_option( $key ) { $options = get_option( self::OPTIONS ); if ( isset( $options[$key] ) ) return $options[$key]; } function set_option( $key, $value ) { $options = get_option( self::OPTIONS ); $options[$key] = $value; update_option( self::OPTIONS, $options ); }
  21. Plugins Repo
  22. Community Karma
  23. Professional Credibility
  24. Easy reuse for you
  25. SVN
  26. svn checkout h p://plugins.svn.wordpress.org/{plugin-name} Plugin dev loop { svn up {hackity hack hack} svn add {new-files} svn commit -m '{Message about your changes}'
  27. /trunk/ for development Tag your releases
  28. /trunk/readme.txt specifies the stable tag Stable tag: 2.3
  29. === Your Plugin === Contributors: markjaquith, nacinbot Donate link: h p://example.com/paypal Tags: foo, bar Requires at least: 3.2 Tested up to: 3.3.1 Stable tag: 2.3 Here is a short description of the plugin. This should be no more than 150 characters. No markup here.
  30. 1. Tag in SVN 2. “Repoint” /trunk/readme.txt
  31. Support forums wordpress.org/support/view/plugin-commi er/USERNAME
  32. assets/banner-772x250.(jpg|png)
  33. Sanity
  34. Slow down on the options cowboyand/or-girl
  35. Say hello to my li le friend:
  36. Say hello to my li le friend: “no”
  37. Encourage good behavior
  38. Encourage g o o d behavior
  39. Q&A Mark Jaquith “JAKE-with” @markjaquith mark@jaquith.me markjaquith.com
Advertisement