DavidFRavigar
6/10/2016 - 8:58 PM

A basic class for use in Wordpres plugins

A basic class for use in Wordpres plugins

<?php
/**
 * -------------------------------------------------------------------------------------------------
 * Wordpress
 * -------------------------------------------------------------------------------------------------
 * Plugin Name: [plugin name]
 * Plugin URI:
 * Description:
 * Version:
 * Author: David Fravigar
 * Author URI: http://davidfravigar.com/
 * License: GNU GENERAL PUBLIC LICENSE V3
 * -------------------------------------------------------------------------------------------------
 * Developer
 * -------------------------------------------------------------------------------------------------
 *
 * @author 		David Fravigar <david.fravigar@me.com>
 * @version  	0.0.1
 * -------------------------------------------------------------------------------------------------
 */

 /**
 * -------------------------------------------------------------------------------------------------
 * Stop Direct Access
 * -------------------------------------------------------------------------------------------------
 */
if ( !defined( 'ABSPATH' ) ) {
	header( 'Status: 403 Forbidden' );
	header( 'HTTP/1.1 403 Forbidden' );
	exit();
}

/**
 * -------------------------------------------------------------------------------------------------
 * The Class
 * -------------------------------------------------------------------------------------------------
 */
class [plugin name]
{

  /**
	 * -----------------------------------------------------------------------------------------------
	 * Constructor
	 * -----------------------------------------------------------------------------------------------
	 */
	function __construct()
	{
	  add_action('init', array($this, 'co_constants'));
		add_action('init', array($this, 'co_includes'));
		add_action('init', array($this, 'co_checkWordpress'));
		add_action('init', array($this, 'co_init'));
	}

	/**
	 * -----------------------------------------------------------------------------------------------
	 * Define some constants
	 * -----------------------------------------------------------------------------------------------
	 */
	public function co_constants()
	{
	  define('[plugin name]_DIR', plugin_dir_path(__FILE__));

	  define('[plugin name]_URL', plugin_dir_url(__FILE__));
	}

	/**
	 * -----------------------------------------------------------------------------------------------
	 * Check Wordpress
	 * -----------------------------------------------------------------------------------------------
	 */
	public function co_checkWordpress()
	{
		global $wp_version;
		if( version_compare( $wp_version, "2.9", "<" ) )
    exit( 'This plugin requires WordPress 2.9 or newer. <a href="http://codex.wordpress.org/Upgrading_WordPress">Please update!</a>' );
	}

	/**
	 * -----------------------------------------------------------------------------------------------
	 * Include files
	 * -----------------------------------------------------------------------------------------------
	 */
	public function co_includes()
	{

	}

	/**
	 * -----------------------------------------------------------------------------------------------
	 * init
	 * -----------------------------------------------------------------------------------------------
	 */
	public function co_init()
	{

	}

	/**
	 * -----------------------------------------------------------------------------------------------
	 *
	 * -----------------------------------------------------------------------------------------------
	 */
	public function co_registerPublicStylesAndScripts()
	{

	}

	/**
	 * -----------------------------------------------------------------------------------------------
	 * Admin styles and scripts
	 * -----------------------------------------------------------------------------------------------
	 */
	public function co_registerAdminStylesAndScripts()
	{

	}

	/**
	 * -----------------------------------------------------------------------------------------------
	 * Public styles and scripts
	 * -----------------------------------------------------------------------------------------------
	 */
	public function co_registerPublicStylesAndScripts()
	{

	}
}

/**
 * -------------------------------------------------------------------------------------------------
 * Instantiate the class
 * -------------------------------------------------------------------------------------------------
 */
new [plugin name]();