更改主题选项时,WPEngine上的缓存无效

时间:2019-02-04 09:12:29

标签: javascript wordpress

由于Wordpress中Jupiter主题生成主题CSS文件的方式发生了变化,例如:https://www.nasta.no/wp-content/uploads/mk_assets/theme-options-production-1548757908.css?ver=1548757865(此文件控制页面宽度,徽标,菜单,页脚,字体等)。我们的网站将此css文件用作参考,并且每次在Wordpress中进行更改时该文件都会失效。

请注意,每次在Wordpress中更改css / theme相关选项时,文件名将如何包含unix时间戳。

因为我们的网站会抓取nasta.no的内容并每10分钟刷新一次,所以每当在Wordpress中进行更改时,我们的网站都会尝试引用一个旧的theme-options-production.css文件,该文件已被删除并替换为较新的版本。结果是我们的站点将始终最多滞后10分钟,并尝试提供不再存在的CSS文件。

在有人“清除主题缓存”或在“主题选项”中进行更改之前,该页面才能正常工作(我们/ Nasta将尝试避免这样做,直到找到解决方案为止)。

我可能的解决方法是缩短更改后浏览nasta.no的时间间隔,但是我不确定如何做到这一点。

您还有其他方法吗?

在nasta.no网站上-他们是如何解决的 同样徒劳的另一个问题是,更改主题选项时,WPEngine上的缓存无效。 使用Jupiter,在通过清除主题缓存或进行更改来更新主题选项时,将删除用于theme-options.css的旧CSS文件,并生成一个带有unix时间后缀的新CSS文件。 由于WPEngine具有其自己的专有缓存解决方案,因此在创建新CSS后不会进行缓存清除。

为了允许清除WPEngine的缓存,进行了以下更改:

function mk_clear_cache_plugins() { 
    if ( function_exists( 'w3tc_pgcache_flush' ) ) { 
        w3tc_pgcache_flush(); 
        // echo 'W3 Total Cache: Page cache flushed'; 
    } elseif ( function_exists( 'wp_cache_clear_cache' ) ) { 
        wp_cache_clear_cache(); 
        // echo 'WP Super Cache: Page cache cleared.'; 
    } elseif ( function_exists( 'rocket_clean_domain' ) ) { 
        rocket_clean_domain(); 
        // echo 'WP Rocket: Domain cache purged.'; 
    } elseif ( method_exists('WpeCommon', 'purge_varnish_cache') ) { 
        // WPEngine specific purge 
        WpeCommon::purge_varnish_cache(); 
    } else { 

    } 
    // die; 
} 

0 个答案:

没有答案