tigerstyle-heat/tigerstyle-heat.php
Ryan Malloy 0028738e33 Initial commit: TigerStyle Heat v2.0.0
Make your WordPress site irresistible. Natural SEO attraction with:
- robots.txt management
- sitemap.xml generation
- LLMs.txt support
- Google integration (Analytics, Search Console, Tag Manager)
- Schema.org structured data
- Open Graph / Twitter Card meta tags
- AMP support
- Visual elements gallery
- Built-in backup/restore module

Includes build.sh and .distignore for WordPress-installable release ZIPs.
2026-05-27 13:41:35 -06:00

198 lines
6.3 KiB
PHP

<?php
/**
* Plugin Name: TigerStyle Heat
* Plugin URI: https://tigerstyle.com/heat-plugin
* Description: Make your site irresistible! Natural SEO attraction with robots.txt, sitemap.xml, LLMs.txt, Google integration, structured data, and meta tags.
* Version: 2.0.0
* Author: TigerStyle
* Author URI: https://tigerstyle.com
* License: GPL v2 or later
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
* Text Domain: tigerstyle-heat
* Domain Path: /languages
* Requires at least: 5.0
* Tested up to: 6.3
* Requires PHP: 7.4
*/
// Prevent direct access
if (!defined('ABSPATH')) {
exit;
}
// Define plugin constants
define('TIGERSTYLE_HEAT_VERSION', '2.0.0');
define('TIGERSTYLE_HEAT_PLUGIN_DIR', plugin_dir_path(__FILE__));
define('TIGERSTYLE_HEAT_PLUGIN_URL', plugin_dir_url(__FILE__));
define('TIGERSTYLE_HEAT_PLUGIN_FILE', __FILE__);
/**
* Main TigerStyle Heat Plugin Class
*/
class TigerStyleSEO {
/**
* Single instance of the class
*/
private static $instance = null;
/**
* Plugin modules
*/
private $modules = array();
/**
* Get single instance
*/
public static function instance() {
if (is_null(self::$instance)) {
self::$instance = new self();
}
return self::$instance;
}
/**
* Constructor
*/
private function __construct() {
$this->init();
}
/**
* Initialize the plugin
*/
private function init() {
// Load dependencies
$this->load_dependencies();
// Initialize hooks
add_action('init', array($this, 'init_plugin'));
// Initialize admin components immediately if in admin area
if (is_admin()) {
$this->init_admin();
}
// Load modules
$this->load_modules();
}
/**
* Load required files
*/
private function load_dependencies() {
// Core includes
require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/class-core.php';
require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/class-utils.php';
// Admin includes
if (is_admin()) {
require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'admin/class-admin.php';
require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'admin/class-admin-pages.php';
}
// Module includes
require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/modules/class-robots-txt.php';
require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/modules/class-sitemap-xml.php';
require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/modules/class-llms-txt.php';
require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/modules/class-google-setup.php';
require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/modules/class-meta-tags.php';
require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/modules/class-structured-data.php';
require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/modules/class-seo-health.php';
require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/modules/class-head-footer.php';
require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/modules/class-visual-elements-gallery.php';
require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/modules/class-amp.php';
require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/modules/class-ecosystem-coordinator.php';
// API includes
require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/api/class-sxg-api-client.php';
require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/api/class-ai-client.php';
// AI modules
require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/modules/class-ai-provider.php';
}
/**
* Initialize plugin components
*/
public function init_plugin() {
// Load text domain
load_plugin_textdomain('tigerstyle-heat', false, dirname(plugin_basename(__FILE__)) . '/languages');
}
/**
* Initialize admin components
*/
public function init_admin() {
TigerStyleSEO_Admin::instance();
}
/**
* Load and initialize modules
*/
private function load_modules() {
$this->modules = array(
'robots_txt' => TigerStyleSEO_RobotsTxt::instance(),
'sitemap_xml' => TigerStyleSEO_Sitemap_xml::instance(),
'llms_txt' => TigerStyleSEO_Llms_txt::instance(),
'google_setup' => TigerStyleSEO_Google_setup::instance(),
'meta_tags' => TigerStyleSEO_Meta_tags::instance(),
'structured_data' => TigerStyleSEO_StructuredData::instance(),
'seo_health' => TigerStyleSEO_Seo_health::instance(),
'head_footer' => TigerStyleSEO_Head_footer::instance(),
'visual_elements_gallery' => TigerStyleSEO_VisualElementsGallery::instance(),
'amp' => TigerStyleSEO_AMP::instance(),
'ai_provider' => TigerStyleSEO_AI_Provider::instance(),
'ecosystem_coordinator' => TigerStyleSEO_EcosystemCoordinator::instance(),
);
}
/**
* Get a specific module
*/
public function get_module($module_name) {
return isset($this->modules[$module_name]) ? $this->modules[$module_name] : null;
}
/**
* Plugin activation
*/
public static function activate() {
// Load core class for activation
require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/class-core.php';
// Run activation hooks for all modules
TigerStyleSEO_Core::activate();
}
/**
* Plugin deactivation
*/
public static function deactivate() {
// Load core class for deactivation
require_once TIGERSTYLE_HEAT_PLUGIN_DIR . 'includes/class-core.php';
TigerStyleSEO_Core::deactivate();
}
}
// Register activation/deactivation hooks
register_activation_hook(__FILE__, array('TigerStyleSEO', 'activate'));
register_deactivation_hook(__FILE__, array('TigerStyleSEO', 'deactivate'));
/**
* Initialize the plugin
*/
function tigerstyle_heat_init() {
return TigerStyleSEO::instance();
}
// Start the plugin
add_action('plugins_loaded', 'tigerstyle_heat_init');
/**
* Helper function to get the main plugin instance
*/
function tigerstyle_heat() {
return TigerStyleSEO::instance();
}