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

时间:2011-05-25 22:45:33

标签: php wordpress

我有一个我为摄影师客户开发的自定义主题,需要实现图像的延迟加载,以便博客加载速度更快,因为它目前拥有的图像数量非常慢,即使只是显示五个帖子。为此,我使用JAIL jquery插件,但我需要能够修改图像标签才能正常工作..基本上我必须用占位符替换src属性并将data-href属性设置为源网址。我似乎无法找到一个在wordpress过滤器内正常工作的分辨率,我基本上是在帖子中过滤了the_content()钩子。有人知道我怎么能做到这一点吗?

1 个答案:

答案 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\" ";
}

请注意,只有所有图像链接始终遵循此方案时,此正则表达式才可用(例如,它们都应使用双引号)。