Regex以更改Wordpress Filter中的img属性


Regex to alter img attributes in Wordpress Filter

我有一个为摄影师客户开发的自定义主题,需要实现图像的延迟加载,这样博客加载速度就会更快,因为他目前拥有的图像数量太多,速度非常慢,即使只显示五篇帖子。为了做到这一点,我使用了JAIL jquery插件,但我需要能够修改图像标签,使其正常工作。。基本上,我必须用占位符替换src属性,并将数据href属性设置为源url。我似乎找不到一个在wordpress过滤器中正常工作的解决方案,我基本上是在过滤帖子中的_content()钩子。。有人知道我是怎么做到的吗?

这些问题的标准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'" ";
}

请注意,只有当您的所有图像链接都一致遵循此方案时,此regex才可用(例如,它们都应该使用双引号)。