simple-lazyload 插件如何做到评论图片延时加载

作者 kebushi, 2018-11-10, 05:49:30

« 上一篇主题 - 下一篇主题 »

kebushi

小弟评论里有图片可以展示出来,https://cnzhx.net/blog/wordpress-plugin-lazyload/  在这篇文章里看到simple-lazyload  这个插件,好像只能图片加载,能否实现评论里的图片也能延时加载呢?

lonelicloud

当然可以实现对评论里的图片执行延迟加载。我没有弄过,这里只给你提供几个思路。但是具体到你用的这个插件的话,我建议你去该插件的支持论坛里提问,这样可能有更大的几率得到好的解决方案。

根据我的观察,似乎 simple-lazyload 已经部署了全页 lazy load 支持。或许你只需要在对应的设置里面启用就可以了?见其源代码的第 49 行,
function simple_lazyload_obstart() {
ob_start('simple_lazyload_obend');
}


下面是自动动手实现可以参考的思路:

1/ 根据 Lazy Load 插件的介绍,你甚至可以通过添加一个语句来让它对全站的图片--当然也包括评论里面的--都实现延迟加载。参见 https://wordpress.org/plugins/lazy-load/#description 里面 FAQ 的问题三「How do I lazy load other images in my theme?」

2/ 采用 Lazy Load 插件中处理文章内容的方法,如,
add_filter( 'the_content', array( __CLASS__, 'add_image_placeholders' ), 99 );
来增加一个针对评论内容(comment_text)的加工,类似于,
add_filter( 'comment_text', array( __CLASS__, 'add_image_placeholders' ), 99 );

欢迎光临水景一页

问题解决后请「修改」原始帖子将其前缀改为「已解决」。

请阅读"论坛管理"里面的置顶内容,帮助维护论坛正常运行,方便你我他!

kebushi

感谢!我刚测试了是全站延时了。

有个小小的问题哈,我不想让一张图延时,怎么排除呢?

lonelicloud

引用自: kebushi 于 2018-11-10, 18:05:59
有个小小的问题哈,我不想让一张图延时,怎么排除呢?
这个我不知道有什么简单的方法来实现。你也看到了,插件是利用正则表达式来批量替换图片标签为需要的延迟加载格式。要在这个批量替换的时候判断是否为你需要排除的那张图片,似乎资源开销比较大。也就是说我觉得这个方法是可以做到的,但是不值得。

我不知道有没有更简单的方法。
欢迎光临水景一页

问题解决后请「修改」原始帖子将其前缀改为「已解决」。

请阅读"论坛管理"里面的置顶内容,帮助维护论坛正常运行,方便你我他!