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.
198 lines
6.3 KiB
PHP
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();
|
|
} |