知更鸟主题Begin文章中部分图片fancybox弹窗失败解决方法

千年骚狐 2020年5月8日开发历程 wordpress之路评论1,134字数 778阅读模式

使用Begin主题,同一片文章有些图片就不会弹窗,而是新窗口打开这个图。

知更鸟主题Begin文章中部分图片fancybox弹窗失败解决方法

然后就特别的郁闷,折腾了一个小时。搞定,原因是图片名称未能匹配到。

例如下面这个图片链接就可以正常弹窗

https://cdn.fox-studio.net/wp-content/uploads/2017/09/20170915202453.jpg

而下面这一个地址就不能,点击后新窗口打开

https://cdn.fox-studio.net/wp-content/uploads/2019/08/WX20190831-184321@2x.png

对比发现图片文件名中多了一个@ 符号,这是因为我使用Mac系统中Squash软件对图片进行了压缩,默认生成的图片会被重命名。

知更鸟主题Begin文章中部分图片fancybox弹窗失败解决方法

而我之前,当然不会注意到这个问题会导致弹窗失败。

修改方法如下:

找到主题目录下这个文件:

../themes/begin/inc/add-class.php

有一条正则匹配的语句

$pattern = "/<a(.*?)href=('|\")([A-Za-z0-9\/_\.\~\:-]*?)(\.bmp|\.gif|\.jpg|\.jpeg|\.png)('|\")([^\>]*?)>/i";

其中的 [A-Za-z0-9\/_\.\~\@\:-]*? 内容就是匹配图片链接的名称部分。

我们略作修改,将“@”符号加入其中。变成[A-Za-z0-9\/_\.\~\@\:-]*? 。注意@ 符号前还有一个\ 符号,表示转义的意思,应该不加也没问题。

$pattern = "/<a(.*?)href=('|\")([A-Za-z0-9\/_\.\~\@\:-]*?)(\.bmp|\.gif|\.jpg|\.jpeg|\.png)('|\")([^\>]*?)>/i";

最后保存覆盖。清除缓存后(如果你网站做了php文件的缓存),刷新页面,搞定。

 

千年骚狐
  • 本文由 发表于 2020年5月8日
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定