load_dependencies(); $this->init_hooks(); } /** * Load required files */ private function load_dependencies() { require_once MXIMAP_PLUGIN_DIR . 'includes/class-mximap-post-type.php'; require_once MXIMAP_PLUGIN_DIR . 'includes/class-mximap-admin.php'; require_once MXIMAP_PLUGIN_DIR . 'includes/class-mximap-shortcode.php'; require_once MXIMAP_PLUGIN_DIR . 'includes/class-mximap-schema.php'; } /** * Initialize hooks */ private function init_hooks() { // Initialize components add_action('init', array($this, 'init_components')); // Activation/Deactivation register_activation_hook(__FILE__, array($this, 'activate')); register_deactivation_hook(__FILE__, array($this, 'deactivate')); } /** * Initialize plugin components */ public function init_components() { // Register Custom Post Type MXIMAP_Post_Type::get_instance(); // Initialize Admin (only in admin area) if (is_admin()) { MXIMAP_Admin::get_instance(); } // Initialize Shortcode MXIMAP_Shortcode::get_instance(); // Initialize Schema MXIMAP_Schema::get_instance(); } /** * Plugin activation */ public function activate() { // Register CPT on activation MXIMAP_Post_Type::get_instance()->register_post_type(); // Flush rewrite rules flush_rewrite_rules(); } /** * Plugin deactivation */ public function deactivate() { // Flush rewrite rules flush_rewrite_rules(); } } /** * Initialize the plugin */ function mximap_init() { return Max_Interactive_Maps::get_instance(); } // Start the plugin mximap_init();