{"id":152562,"date":"2022-02-10T13:05:32","date_gmt":"2022-02-10T13:05:32","guid":{"rendered":"https:\/\/de.wordpress.org\/plugins\/jinx-fast-cache\/"},"modified":"2026-01-16T09:03:12","modified_gmt":"2026-01-16T09:03:12","slug":"jinx-fast-cache","status":"publish","type":"plugin","link":"https:\/\/tah.wordpress.org\/plugins\/jinx-fast-cache\/","author":8023631,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"0.9.8","stable_tag":"trunk","tested":"6.9.0","requires":"5.0","requires_php":"8.0","requires_plugins":null,"header_name":"Jinx Fast-Cache","header_author":"Jinx Digital <hello@jinx-digital.com>","header_description":"Blazing fast full page cache.","assets_banners_color":"ffe9b1","last_updated":"2026-01-16 09:03:12","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/jixn-fast-cache\/","header_author_uri":"http:\/\/jinx-digital.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":1502,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation"],"tags":[],"upgrade_notice":{"":"<p>Upon updating, the plugin will automatically flush the cache to ensure compatibility. If you encounter any display issues after an upgrade, we recommend deactivating and reactivating the plugin to refresh the internal rules.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":2676361,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":2676361,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":2676361,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":{"jinx-fast-cache\/inject":{"name":"jinx-fast-cache\/inject","title":"\u26a1 Jinx Fast-Cache Inject"}},"tagged_versions":[],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[146,31259,246,247,125792],"plugin_category":[52],"plugin_contributors":[],"plugin_business_model":[],"class_list":["post-152562","plugin","type-plugin","status-publish","hentry","plugin_tags-cache","plugin_tags-fullpage","plugin_tags-html","plugin_tags-performance","plugin_tags-static-cache","plugin_category-performance","plugin_committers-lugat"],"banners":{"banner":"https:\/\/ps.w.org\/jinx-fast-cache\/assets\/banner-772x250.jpg?rev=2676361","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/jinx-fast-cache\/assets\/icon-128x128.png?rev=2676361","icon_2x":"https:\/\/ps.w.org\/jinx-fast-cache\/assets\/icon-256x256.png?rev=2676361","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Jinx Fast-Cache provides a simple but highly efficient way to implement full-page caching. It generates static HTML files of your pages, which are then served directly by your web server (Apache or Nginx).<\/p>\n\n<p>By bypassing the entire PHP process and database queries, your server load is significantly reduced and your website response time becomes near-instant. Unlike many other plugins, Jinx Fast-Cache is built with a developer-first approach, working primarily with URLs and offering deep integration via filters and actions.<\/p>\n\n<h3>Usage<\/h3>\n\n<h3>Server Configuration<\/h3>\n\n<p>To serve the cached files directly, you must add rewrite rules to your server configuration.<\/p>\n\n<p><strong>For Apache (.htaccess):<\/strong>\nThe plugin will attempt to modify your <code>.htaccess<\/code> automatically. If it fails, add this manually:<\/p>\n\n<pre><code># BEGIN Jinx Fast-Cache\nRewriteEngine On\nRewriteBase \/\nRewriteCond %{DOCUMENT_ROOT}\/wp-content\/jinx-fast-cache\/%{HTTP_HOST}\/%{REQUEST_URI}\/%{QUERY_STRING}\/index.html -s\nRewriteCond %{REQUEST_METHOD} GET\nRewriteRule .* \/wp-content\/jinx-fast-cache\/%{HTTP_HOST}\/%{REQUEST_URI}\/%{QUERY_STRING}\/index.html [L]\n# END Jinx Fast-Cache\n<\/code><\/pre>\n\n<p><strong>For Nginx:<\/strong>\nAdd the following logic to your server block:<\/p>\n\n<pre><code>set $cache_path false;\nif ($request_method = GET) {\n  set $cache_path \/wp-content\/jinx-fast-cache\/$host\/$uri\/$args\/index.html;\n}\nlocation \/ {\n  try_files $cache_path $uri $uri\/ \/index.php?$query_string;\n}\n<\/code><\/pre>\n\n<h3>Cache Management<\/h3>\n\n<ul>\n<li><strong>Admin Bar:<\/strong> You can flush (clear), warm (generate), or refresh (flush &amp; warm) single or multiple URLs directly from the admin bar.<\/li>\n<li><strong>Automatic Updates:<\/strong> Posts are automatically \"warmed\" after saving and \"flushed\" when deleted or set to draft.<\/li>\n<li><strong>Background Processing:<\/strong> The warming process uses a background queue handled via WordPress Cron to ensure server stability. Single post warming skips the queue for immediate results.<\/li>\n<li><strong>Plugin Updates:<\/strong> The cache is automatically refreshed after the plugin is updated.<\/li>\n<\/ul>\n\n<h3>Developer API<\/h3>\n\n<p>Jinx Fast-Cache is highly extensible. While a settings panel is available, developers can fine-tune every detail via filters and actions.<\/p>\n\n<h3>1. Filters<\/h3>\n\n<ul>\n<li><strong>jinx_fast_cache_active<\/strong>: Toggle caching for specific conditions (default: false).<\/li>\n<li><strong>jinx_fast_cache_post_types<\/strong>: Define which post types should be cached (default: 'page' and 'publicly_queryable' types).<\/li>\n<li><strong>jinx_fast_cache_posts<\/strong>: Filter the specific list of post objects to be cached.<\/li>\n<li><strong>jinx_fast_cache_taxonomies<\/strong>: Define which taxonomies are cacheable.<\/li>\n<li><strong>jinx_fast_cache_terms<\/strong>: Filter the specific list of terms to be cached.<\/li>\n<li><strong>jinx_fast_cache_output<\/strong>: Modify the raw HTML content before it is saved to the cache file.<\/li>\n<li><strong>jinx_fast_cache_minify<\/strong>: Enable\/disable HTML minification (default: false).<\/li>\n<li><strong>jinx_fast_cache_flush<\/strong>: Define additional related URLs that should be cleared when a specific page is flushed.<\/li>\n<li><strong>jinx_fast_cache_warm<\/strong>: Define additional related URLs that should be preloaded when a specific page is warmed.<\/li>\n<li><strong>jinx_fast_cache_queue_interval<\/strong>: Adjust the cron task frequency for the warming queue (default: 60s).<\/li>\n<li><strong>jinx_fast_cache_queue_size<\/strong>: Adjust the batch size per cron task (default: 10). Set to <code>&lt;= 0<\/code> to process everything at once (Caution: High server load).<\/li>\n<li><strong>jinx_fast_cache_gc_interval<\/strong>: Adjust the Garbage Collector frequency to remove invalid files (default: 60s).<\/li>\n<li><strong>jinx_fast_cache_ignore_logged_in_users<\/strong>: Toggle caching for logged-in users (default: true).<\/li>\n<li><strong>jinx_fast_cache_ignore_404<\/strong>: Toggle if 404 error pages should be cached (default: false).<\/li>\n<li><strong>jinx_fast_cache_query_params<\/strong>: Define allowed query parameters. Return <code>__return_empty_array<\/code> to ignore all parameters.<\/li>\n<li><strong>jinx_fast_cache_refresh_on_upgrade<\/strong>: Toggle the full cache refresh after plugin updates (default: true).<\/li>\n<li><strong>jinx_fast_cache_ttl<\/strong>: Define the cache lifetime (TTL). Supports seconds (e.g., 3600) or strings (e.g., '12 hours', '1 week').<\/li>\n<\/ul>\n\n<h3>2. Dynamic Injections (AJAX)<\/h3>\n\n<p>Since static HTML files cannot execute PHP, Jinx allows you to \"inject\" dynamic content (like a user's name or a shopping cart) via AJAX.<\/p>\n\n<p><strong>Injecting a Template Part:<\/strong><\/p>\n\n<pre><code>do_action('jinx_fast_cache_inject_template', 'template-slug', 'Placeholder text...');\n<\/code><\/pre>\n\n<p><strong>Injecting via Function Call:<\/strong><\/p>\n\n<p>You can call any public function or class method:<\/p>\n\n<pre><code>do_action('jinx_fast_cache_inject', 'date', ['Y']);\ndo_action('jinx_fast_cache_inject', ['MyClass', 'myMethod'], [$arg1, $arg2]);\n<\/code><\/pre>\n\n<p><strong>Using Shortcodes:<\/strong><\/p>\n\n<pre><code>[jinx_fast_cache_inject placeholder=\"Loading...\"] Your dynamic content here [\/jinx_fast_cache_inject]\n<\/code><\/pre>\n\n<p><strong>JS Callbacks:<\/strong><\/p>\n\n<p>Trigger custom JavaScript after the content has been injected:<\/p>\n\n<pre><code>$('.element').on('jinx-fast-cache-inject', (e) =&gt; { \/* Handle injection *\/ });\nelement.addEventListener('jinx-fast-cache-inject', (e) =&gt; { \/* Handle injection *\/ }, false);\n<\/code><\/pre>\n\n<h3>3. URL Tags &amp; Relations<\/h3>\n\n<p>Tags are a powerful way to link multiple URLs together. If one URL is flushed, all other URLs sharing the same tag will also be purged. This is perfect for linking a \"Latest Posts\" widget on your homepage to your single post entries.<\/p>\n\n<p><strong>Via Shortcode:<\/strong><\/p>\n\n<pre><code>[jinx_fast_cache tags=\"news,homepage\"]\n<\/code><\/pre>\n\n<p><strong>Via Action:<\/strong><\/p>\n\n<pre><code>do_action('jinx_fast_cache', ['tags' =&gt; 'tag1,tag2']);\ndo_action('jinx_fast_cache', ['tags' =&gt; ['tag1', 'tag2']]);\n<\/code><\/pre>\n\n<h3>4. Per-Page Cache Duration (TTL)<\/h3>\n\n<p>Override the global TTL for specific high-traffic or highly dynamic pages.<\/p>\n\n<p><strong>Via Shortcode:<\/strong><\/p>\n\n<pre><code>[jinx_fast_cache ttl=\"3600\"] or `[jinx_fast_cache ttl=\"12 hours\"]`\n<\/code><\/pre>\n\n<p><strong>Via Action:<\/strong><\/p>\n\n<pre><code>do_action('jinx_fast_cache', ['ttl' =&gt; 3600]);\n<\/code><\/pre>\n\n<p><strong>Combined Call (Tags + TTL):<\/strong><\/p>\n\n<pre><code>do_action('jinx_fast_cache', ['ttl' =&gt; 3600, 'tags' =&gt; ['foo', 'bar']]);&lt;h3&gt;Roadmap&lt;\/h3&gt;\n<\/code><\/pre>\n\n<p>- [x] Release the plugin\n- [x] Add HTML minification for output\n- [x] Allow injection of dynamic rendered templates using ajax requests\n- [x] Add taxonomies\n- [x] Provide scheduled tasks\n- [x] Add admin columns for cache status\n- [x] Provide exclude option for posts and terms in backend\n- [x] Add multisite support\n- [x] Flush and warm after update complete\n- [x] Add possibility to ignore 404\n- [x] Allow query params to be excluded or totally ignored\n- [x] Provide cache duration\n- [x] Provide admin panel to change options\n- [x] Add tags to flush related pages\n- [x] Add shortcode for injects\n- [x] Add JS events for injects\n- [x] Gutenberg inject block<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Unzip the downloaded package.<\/li>\n<li>Upload the <code>jinx-fast-cache<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li><strong>Important:<\/strong> Configure your server rewrite rules (see \"Usage\") to serve the static files.<\/li>\n<\/ol>","raw_excerpt":"Blazing fast full-page caching for WordPress. Jinx Fast-Cache serves static HTML files, bypassing PHP and database overhead entirely.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/152562","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=152562"}],"author":[{"embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/lugat"}],"wp:attachment":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=152562"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=152562"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=152562"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=152562"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=152562"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=152562"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}