我有一个我为摄影师客户开发的自定义主题,需要实现图像的延迟加载,以便博客加载速度更快,因为它目前拥有的图像数量非常慢,即使只是显示五个帖子。为此,我使用JAIL jquery插件,但我需要能够修改图像标签才能正常工作..基本上我必须用占位符替换src属性并将data-href属性设置为源网址。我似乎无法找到一个在wordpress过滤器内正常工作的分辨率,我基本上是在帖子中过滤了the_content()钩子。有人知道我怎么能做到这一点吗?
答案 0 :(得分:1)
这些问题的标准Stackoverflow陈词滥调是你应该使用DOM解析器。这实际上是正确的,但输出操作不太可行(性能)。
要完成你想要的你可以尝试:
$html = preg_replace_callback(
'#(<img\s[^>]*src)="([^"]+)"#',
"callback_img", $html);
然后定义一个这样的回调:
function callback_img($match) {
list(, $img, $src) = $match;
return "$img=\"placeholder\" data-href=\"$src\" ";
}
请注意,只有所有图像链接始终遵循此方案时,此正则表达式才可用(例如,它们都应使用双引号)。