init_plugin_constants(); load_plugin_textdomain( PLUGIN_LOCALE, false, dirname( plugin_basename( __FILE__ ) ) . '/lang' ); // Load JavaScript and stylesheets $this->register_scripts_and_styles(); register_activation_hook( __FILE__, array( &$this, 'activate' ) ); register_deactivation_hook( __FILE__, array( &$this, 'deactivate' ) ); /* * TODO: * Define the custom functionality for your plugin. The first parameter of the * add_action/add_filter calls are the hooks into which your code should fire. * * The second parameter is the function name located within this class. See the stubs * later in the file. * * For more information: * http://codex.wordpress.org/Plugin_API#Hooks.2C_Actions_and_Filters */ add_action( 'TODO', array( $this, 'action_method_name' ) ); add_filter( 'TODO', array( $this, 'filter_method_name' ) ); } // end constructor function activate($network_wide) { /* TODO define activation functionality here $network_wide is true if WPMU superadmin uses "Network Activate" action, false if WPMU is disabled or plugin is activated on an individual blog */ } function deactivate($network_wide) { /* TODO define deactivation functionality here $network_wide is true if WPMU superadmin uses "Network Deactivate" action, false if WPMU is disabled or plugin is deactivated on an individual blog */ } /*--------------------------------------------* * Core Functions *---------------------------------------------*/ /** * Note: Actions are points in the execution of a page or process * lifecycle that WordPress fires. * * WordPress Actions: http://codex.wordpress.org/Plugin_API#Actions * Action Reference: http://codex.wordpress.org/Plugin_API/Action_Reference * */ function action_method_name() { // TODO define your action method here } // end action_method_name /** * Note: Filters are points of execution in which WordPress modifies data * before saving it or sending it to the browser. * * WordPress Filters: http://codex.wordpress.org/Plugin_API#Filters * Filter Reference: http://codex.wordpress.org/Plugin_API/Filter_Reference * */ function filter_method_name() { // TODO define your filter method here } // end filter_method_name /*--------------------------------------------* * Private Functions *---------------------------------------------*/ /** * Initializes constants used for convenience throughout * the plugin. */ private function init_plugin_constants() { /* TODO * * Define this as the name of your plugin. This is what shows * in the Widgets area of WordPress. * * For example: WordPress Widget Boilerplate. */ if ( !defined( 'PLUGIN_NAME' ) ) { define( 'PLUGIN_NAME', self::name ); } // end if /* TODO * * this is the slug of your plugin used in initializing it with * the WordPress API. * This should also be the * directory in which your plugin resides. Use hyphens. * * For example: wordpress-widget-boilerplate */ if ( !defined( 'PLUGIN_SLUG' ) ) { define( 'PLUGIN_SLUG', self::slug ); } // end if } // end init_plugin_constants /** * Registers and enqueues stylesheets for the administration panel and the * public facing site. */ private function register_scripts_and_styles() { if ( is_admin() ) { $this->load_file( self::slug . '-admin-script', '/js/admin.js', true ); $this->load_file( self::slug . '-admin-style', '/css/admin.css' ); } else { $this->load_file( self::slug . '-script', '/js/widget.js', true ); $this->load_file( self::slug . '-style', '/css/widget.css' ); } // end if/else } // end register_scripts_and_styles /** * Helper function for registering and enqueueing scripts and styles. * * @name The ID to register with WordPress * @file_path The path to the actual file * @is_script Optional argument for if the incoming file_path is a JavaScript source file. */ private function load_file( $name, $file_path, $is_script = false ) { $url = plugins_url($file_path, __FILE__); $file = plugin_dir_path(__FILE__) . $file_path; if( file_exists( $file ) ) { if( $is_script ) { wp_register_script( $name, $url, array('jquery') ); wp_enqueue_script( $name ); } else { wp_register_style( $name, $url ); wp_enqueue_style( $name ); } // end if } // end if } // end load_file } // end class // TODO: update the instantiation call of your plugin to the name given at the class definition new PluginName(); ?>