正则表达式可更改Wordpress过滤器中的img属性

问题描述

| 我有一个为摄影师客户开发的自定义主题,需要实现图像的延迟加载,以使Blog加载速度更快,因为由于他当前拥有的图像数量,它的速度非常慢,即使只显示五个帖子。为此,我使用的是JAIL jquery插件,但我需要能够修改图像标签以使其正常工作。.基本上,我必须用占位符替换src属性,并将data-href属性设置为源网址。我似乎找不到在wordpress过滤器内部正常运行的分辨率,我基本上是在帖子中过滤the_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\\\" \";
}
请注意,仅当您所有的图像链接始终遵循此方案时,此正则表达式才可用(例如,所有的正则表达式都应使用双引号)。