A quick OOP pattern / skeleton for creating WordPress plugins.
<?php
/*
Plugin Name: Your Plugin
Plugin URI: https://wordpress.org/plugins/your-plugin
Description: Your plugin skeleton
Version: 1.0
Author: you
Author URI: http://your-site.com
License: GPL2
*/
/* The class encapsulates the plugin and its functions */
class Your_Plugin
{
/* Put any plugin variables here */
var $plugin_variable;
/* The constructor will be used to setup actions and filters */
function __construct()
{
/**
* Set a plugin variable
*/
$this->plugin_variable = 'test';
/**
* Hook on plugins_loaded. This is the first hook available to regular plugins.
* It happens when all plugins have been initialized and is the best place to put your logic.
*/
add_action('plugins_loaded', array($this, 'plugin_loaded'));
/* Optionally, add additional hooks here. */
}
/**
* Put your main plugin logic here!
*/
function plugin_loaded()
{
/* Here is how to call a function inside your class: */
$sum = $this->add(1,2);
}
/**
* A plugin function that adds
* two numbers together and
* returns them.
*
* @param $var1
* @param $var2
* @return mixed
*/
function add($var1, $var2)
{
return $var1+$var2;
}
}
/* This initiates your plugin */
$your_plugin = new Your_Plugin();
Interfacing with your plugin
Interfacing with your plugin is possible by either calling the global you created (last line), like this:
global $your_plugin;
$sum = $your_plugin->add(1,2);
If you hooked on plugins_loaded, this can be done pretty much anywhere – other plugins, themes, you name it!
Another popular pattern is creating a global function helper inside your plugin.
/**
* Here is how to create a global function
* for your plugin.
*/
function your_plugin_add($var1, $var2)
{
global $your_plugin;
return $your_plugin->add($var1, $var2);
}
And here is how you would call the global function in that case:
/**
* Here is how to call the external function:
*/
$sum = your_plugin_add(1,2);