/** * Constructs and initialize Pronamic WordPress Extensions plugin * * @param string $file */ private function __construct($file) { $this->file = $file; $this->dir_path = plugin_dir_path($file); // Includes foreach (glob($this->dir_path . 'includes/*.php') as $filename) { require_once $filename; } // Actions add_action('init', array($this, 'init')); add_action('plugins_loaded', array($this, 'plugins_loaded')); add_action('admin_bar_menu', array($this, 'admin_bar_menu'), 100); // Filters add_filter('wp_headers', array($this, 'wp_headers')); // Admin if (is_admin()) { Pronamic_WP_ClientPlugin_Admin::get_instance($this); } // Updater $this->updater = Pronamic_WP_ClientPlugin_Updater::get_instance($this); }
/** * Return an instance of this class. * * @since 1.1.0 * * @return object A single instance of this class. */ public static function get_instance(Pronamic_WP_ClientPlugin_Plugin $plugin) { // If the single instance hasn't been set, set it now. if (null === self::$instance) { self::$instance = new self($plugin); } return self::$instance; }