我在https://stackoverflow.com/a/22818089/3465265
处使用缓冲方法来获得kfriend推荐的最终html输出它工作正常,但缓存插件存在问题。 Arne L在这里为WP超级缓存推荐了一个过滤器:https://stackoverflow.com/a/51171913/3465265
但这不起作用。当我使用wp_cache_ob_callback_filter
作为过滤器名称时,根本没有任何更改。没有超级缓存文件生成。
WP火箭队也有类似的过滤器,称为rocket_buffer
https://docs.wp-rocket.me/article/774-rocketbuffer
应用该过滤器名称修复可最小化问题。 WP Rocket可以正确压缩HTML和CSS,但在/ cache / wp-rocket目录中不会生成html文件。
这是我的代码:
ob_start();
add_action('shutdown', function() {
$final = '';
// We'll need to get the number of ob levels we're in, so that we can iterate over each, collecting
// that buffer's output into the final output.
$levels = ob_get_level();
for ($i = 0; $i < $levels; $i++) {
$final .= ob_get_clean();
}
// Apply any filters to the final output
echo apply_filters('rocket_buffer', $final);
}, 0);
add_filter('rocket_buffer', function($output) {
//this is where changes should be made
$pattern1 ='~(<img.*? alt=")("[^>]*>)~i'; // alt empty
$alt_keyword = "BUBBLE";
$replace_fkw = '$1'. $alt_keyword .'$2';
return $content = preg_replace($pattern1, $replace_fkw, $output);
});
它应该用给定的关键字替换img空的alt标签,除了缓存插件中提到的问题之外,该关键字都可以正常工作。
请提供任何解决方案。
谢谢