如何从Divi页面模板中移除主题缓存钩子?
Divi缓存问题快速解决与代码对应判断
一、代码对应判断
你提供的PHP代码不会生成带有et-builder-module-design-deferred-397-cached-inline-stylesID的内联style标签。
这段代码是Divi针对文章截断/摘要内容的缓存逻辑:它通过et_truncate_post_use_custom_content过滤器,缓存经过the_content处理后的文章内容,将结果存在_et_pb_truncate_post和_et_pb_truncate_post_date这两个文章元数据中,仅用于优化文章摘要的生成性能,和页面内联样式的缓存机制完全无关。
二、10分钟定位并移除Divi内联样式缓存钩子
针对仅7个页面出现的缓存问题,按以下步骤操作:
锁定目标钩子
Divi的内联样式缓存核心函数是et_builder_render_deferred_inline_styles,它通常挂载在wp_footer动作上,优先级为99;另外还有一个缓存过滤钩子et_builder_cache_deferred_inline_styles负责处理缓存存储逻辑。针对性禁用缓存
在当前主题的functions.php文件末尾添加以下代码,仅对问题页面禁用该缓存:
add_action('wp', function() { // 替换为出现问题的7个页面ID,用逗号分隔 $problem_page_ids = [10, 25, 33, 41, 57, 62, 79]; if (is_page($problem_page_ids)) { // 移除内联样式渲染的钩子,直接跳过缓存内容输出 remove_action('wp_footer', 'et_builder_render_deferred_inline_styles', 99); // 若上述无效,额外移除缓存过滤钩子 remove_filter('et_builder_deferred_inline_styles', 'et_builder_cache_deferred_inline_styles'); } });
- 验证结果
保存代码后,刷新那7个问题页面,检查页面源码中是否还存在et-builder-module-design-deferred-xxx-cached-inline-styles的style标签,同时确认无需频繁清理多平台缓存即可看到页面更新。
内容的提问来源于stack exchange,提问作者Sparxx
相关产品推荐
相关产品推荐

