<?php /** * Built-in Cache System * * Ultra-fast page caching system built into the theme * No plugins needed - WP Rocket alternative * * @package MyTheme */ // Exit if accessed directly if (!defined('ABSPATH')) { exit; } class MyTheme_Cache_System { private $cache_dir; private $cache_enabled; private $cache_duration; /** * Constructor */ public function __construct() { // Cache settings $this->cache_enabled = function_exists('mytheme_get_option') ? mytheme_get_option('cache_enabled', true) : true; $this->cache_duration = function_exists('mytheme_get_option') ? mytheme_get_option('cache_duration', 3600) : 3600; // Cache directory $upload_dir = wp_upload_dir(); $this->cache_dir = $upload_dir['basedir'] . '/mytheme-cache'; // Initialize $this->init(); } /** * Initialize cache system */ private function init() { if (!$this->cache_enabled) { return; } // Create cache directory $this->create_cache_dir(); // Start output buffering for page caching add_action('template_redirect', array($this, 'start_page_cache'), 1); // Clear cache actions add_action('save_post', array($this, 'clear_post_cache')); add_action('comment_post', array($this, 'clear_post_cache')); add_action('switch_theme', array($this, 'clear_all_cache')); add_action('mytheme_clear_cache', array($this, 'clear_all_cache')); // Admin bar cache clear button add_action('admin_bar_menu', array($this, 'add_cache_clear_button'), 999); add_action('admin_post_mytheme_clear_cache', array($this, 'handle_cache_clear')); // AJAX cache clear add_action('wp_ajax_mytheme_clear_cache', array($this, 'ajax_clear_cache')); } /** * Create cache directory */ private function create_cache_dir() { if (!file_exists($this->cache_dir)) { wp_mkdir_p($this->cache_dir); // Add .htaccess for security $htaccess = $this->cache_dir . '/.htaccess'; if (!file_exists($htaccess)) { file_put_contents($htaccess, 'deny from all'); } } } /** * Get cache file path */ private function get_cache_file_path($url = null) { if ($url === null) { $url = $_SERVER['REQUEST_URI']; } // Generate unique cache key $cache_key = md5($url . (is_user_logged_in() ? 'logged_in' : 'guest')); return $this->cache_dir . '/' . $cache_key . '.html'; } /** * Start page caching */ public function start_page_cache() { // Don't cache for logged-in users or admin if (is_user_logged_in() || is_admin()) { return; } // Don't cache POST requests if ($_SERVER['REQUEST_METHOD'] === 'POST') { return; } // Don't cache search, 404, feeds if (is_search() || is_404() || is_feed() || is_trackback()) { return; } // Check if cached version exists $cache_file = $this->get_cache_file_path(); if (file_exists($cache_file)) { $cache_age = time() - filemtime($cache_file); // Serve cached version if not expired if ($cache_age < $this->cache_duration) { header('X-MyTheme-Cache: HIT'); header('Cache-Control: max-age=' . $this->cache_duration); readfile($cache_file); exit; } else { // Delete expired cache unlink($cache_file); } } // Start output buffering to create cache header('X-MyTheme-Cache: MISS'); ob_start(array($this, 'save_page_cache')); } /** * Save page to cache */ public function save_page_cache($html) { // Don't cache if HTML is empty or too small if (strlen($html) < 255) { return $html; } // Save to cache file $cache_file = $this->get_cache_file_path(); file_put_contents($cache_file, $html); return $html; } /** * Clear post cache */ public function clear_post_cache($post_id) { $post_url = get_permalink($post_id); $cache_file = $this->get_cache_file_path($post_url); if (file_exists($cache_file)) { unlink($cache_file); } // Also clear homepage and category archives $this->clear_homepage_cache(); } /** * Clear homepage cache */ private function clear_homepage_cache() { $home_cache = $this->get_cache_file_path('/'); if (file_exists($home_cache)) { unlink($home_cache); } } /** * Clear all cache */ public function clear_all_cache() { if (!file_exists($this->cache_dir)) { return; } // Delete all cache files $files = glob($this->cache_dir . '/*.html'); foreach ($files as $file) { if (is_file($file)) { unlink($file); } } } /** * Add cache clear button to admin bar */ public function add_cache_clear_button($wp_admin_bar) { if (!current_user_can('manage_options')) { return; } $wp_admin_bar->add_node(array( 'id' => 'mytheme-clear-cache', 'title' => 'Clear Cache', 'href' => wp_nonce_url(admin_url('admin-post.php?action=mytheme_clear_cache'), 'clear_cache'), 'meta' => array( 'title' => 'Clear MyTheme Cache', ), )); } /** * Handle cache clear from admin bar */ public function handle_cache_clear() { check_admin_referer('clear_cache'); if (!current_user_can('manage_options')) { wp_die('Unauthorized'); } $this->clear_all_cache(); wp_redirect(wp_get_referer()); exit; } /** * AJAX clear cache */ public function ajax_clear_cache() { check_ajax_referer('mytheme-nonce', 'nonce'); if (!current_user_can('manage_options')) { wp_send_json_error('Unauthorized'); } $this->clear_all_cache(); wp_send_json_success('Cache cleared successfully'); } /** * Get cache statistics */ public function get_cache_stats() { if (!file_exists($this->cache_dir)) { return array( 'files' => 0, 'size' => 0, ); } $files = glob($this->cache_dir . '/*.html'); $total_size = 0; foreach ($files as $file) { $total_size += filesize($file); } return array( 'files' => count($files), 'size' => size_format($total_size), 'size_bytes' => $total_size, ); } } // Initialize cache system new MyTheme_Cache_System(); /** * Helper function to clear cache */ function mytheme_clear_cache() { do_action('mytheme_clear_cache'); } https://indiabank.net/union-bank-of-india-share-price-whats-driving-its-growth-today/ India Banks - Loans, Savings, Digital Banking Insights en-GB 2026-07-27T02:15:17+05:30 Union Bank of India Share Price: What’s Driving Its Growth Today? banking sector growth, financial news India, Indian banking stocks, investment tips, share price trends, stock market analysis, Union Bank of India, Union Bank share price https://indiabank.net/wp-content/uploads/2025/06/pexels-photo-17435472-scaled.jpeg https://indiabank.net/central-bank-of-india-net-banking-unlock-your-financial-freedom/ India Banks - Loans, Savings, Digital Banking Insights en-GB 2026-07-27T02:15:17+05:30 Central Bank of India Net Banking: Unlock Your Financial Freedom banking security tips, Central Bank digital services, central bank of india net banking, Central Bank of India services, financial freedom, internet banking features, managing finances online, online banking India https://indiabank.net/wp-content/uploads/2025/06/pexels-photo-13970482-scaled.jpeg https://indiabank.net/union-bank-of-india-net-banking-unlock-hassle-free-banking-today/ India Banks - Loans, Savings, Digital Banking Insights en-GB 2026-07-26T18:30:17+05:30 Union Bank of India Net Banking: Unlock Hassle-Free Banking Today banking solutions, digital banking, Financial Technology, Hassle-Free Banking, Net Banking, Online Banking, Union Bank of India, Union Bank Services https://indiabank.net/wp-content/uploads/2025/06/pexels-photo-14907310-1-scaled.jpeg https://indiabank.net/reserve-bank-of-india-unlocking-secrets-to-economic-stability/ India Banks - Loans, Savings, Digital Banking Insights en-GB 2026-07-26T18:30:16+05:30 Reserve Bank of India: Unlocking Secrets to Economic Stability Central Banking in India, Economic Growth Strategies, Economic Stability, Financial Regulation, Indian Economy, Monetary Policy, RBI Insights, Reserve Bank of India https://indiabank.net/wp-content/uploads/2025/06/pexels-photo-7010128-scaled.jpeg https://indiabank.net/central-bank-of-india-atm-discover-convenient-cash-access-today/ India Banks - Loans, Savings, Digital Banking Insights en-GB 2026-07-26T03:30:18+05:30 Central Bank Of India ATM: Discover Convenient Cash Access Today! ATM cash access, ATM services Central Bank, banking convenience, cash withdrawal India, Central Bank ATM locations, Central Bank of India ATM, Central Bank of India services, digital banking India https://indiabank.net/wp-content/uploads/2025/06/pexels-photo-3521353-scaled.jpeg https://indiabank.net/bank-of-india-near-me-discover-convenient-locations-today/ India Banks - Loans, Savings, Digital Banking Insights en-GB 2026-07-26T03:30:18+05:30 Bank Of India Near Me: Discover Convenient Locations Today! Bank of India ATMs, Bank of India branches, Bank of India contact information, Bank of India locations, Bank of India near me, Bank of India Services, find Bank of India, nearest Bank of India https://indiabank.net/wp-content/uploads/2025/06/pexels-photo-19153798-scaled.jpeg https://indiabank.net/union-bank-of-india-atm-discover-convenient-cash-access-today/ India Banks - Loans, Savings, Digital Banking Insights en-GB 2026-07-25T19:24:50+05:30 Union Bank of India ATM: Discover Convenient Cash Access Today! ATM locations Union Bank, ATM tips and tricks, banking convenience, cash withdrawal India, UBI ATM services, UBI financial services, Union Bank cash access, Union Bank of India ATM https://indiabank.net/wp-content/uploads/2025/06/pexels-photo-8554384-scaled.jpeg https://indiabank.net/bank-of-india-atm-unlock-convenient-cash-withdrawal-today/ India Banks - Loans, Savings, Digital Banking Insights en-GB 2026-07-25T19:24:50+05:30 Bank of India ATM: Unlock Convenient Cash Withdrawal Today ATM locations, ATM services, Bank of India, Bank of India ATM, banking convenience, cash withdrawal, digital banking solutions, financial services https://indiabank.net/wp-content/uploads/2025/06/pexels-photo-17244624-1-scaled.jpeg https://indiabank.net/union-bank-of-india-share-is-it-time-to-invest-in-this-gem/ India Banks - Loans, Savings, Digital Banking Insights en-GB 2026-07-24T13:45:17+05:30 Union Bank of India Share: Is It Time to Invest in This Gem? banking sector shares, financial tips for investors, Indian banking stocks, invest in Union Bank of India, stock market investment, Union Bank of India performance, Union Bank of India share, Union Bank stock analysis https://indiabank.net/wp-content/uploads/2025/06/pexels-photo-17435472-1-scaled.jpeg https://indiabank.net/bank-of-india-share-price-discover-what-drives-its-market-trends/ India Banks - Loans, Savings, Digital Banking Insights en-GB 2026-07-24T13:45:17+05:30 Bank of India Share Price: Discover What Drives Its Market Trends Bank of India financial performance, Bank of India investment insights, Bank of India market trends, Bank of India share price, Bank of India stock analysis, Indian banking sector stocks, share price prediction Bank of India, stock market analysis https://indiabank.net/wp-content/uploads/2025/06/pexels-photo-30572289-scaled.jpeg https://indiabank.net/union-bank-of-india-online-account-opening-unlock-your-banking-potential/ India Banks - Loans, Savings, Digital Banking Insights en-GB 2026-07-24T06:00:17+05:30 Union Bank of India Online Account Opening: Unlock Your Banking Potential account registration, banking potential, banking services, digital banking, financial services, online account opening, Union Bank of India, Union Bank online banking https://indiabank.net/wp-content/uploads/2025/06/pexels-photo-7621536-2-scaled.jpeg https://indiabank.net/bank-of-india-net-banking-unlock-seamless-online-banking-today/ India Banks - Loans, Savings, Digital Banking Insights en-GB 2026-07-24T06:00:17+05:30 Bank of India Net Banking: Unlock Seamless Online Banking Today! Bank of India, Bank of India Services, Banking Tips, digital banking, Internet Banking, Net Banking, Online Banking, Secure Online Transactions https://indiabank.net/wp-content/uploads/2025/06/pexels-photo-14907310-scaled.jpeg