wordpress 中添加图片放大功能

功能描述

  1. 使用 Fancybox 实现图片放大和灯箱效果。
  2. 自动为文章内容中的图片添加链接,使其支持 Fancybox。
  3. 修改了 header.phpfooter.php 以引入必要的 CSS 和 JS 文件。
  4. functions.php 中通过过滤器自动为图片添加 data-fancybox 属性。

最终代码

1. 修改 header.php

<head> 标签内添加以下代码:

php 复制代码
<!-- 图片放大 --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css" />

2. 修改 footer.php

在关闭的 </body> 标签前添加以下代码:

php 复制代码
<!-- 图片放大 --> <script src="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js"></script>

3. 修改 functions.php

functions.php 中添加以下代码:

php 复制代码
/** 图片灯箱自动为图片添加链接 **/ add_filter('the_content', 'fancybox'); function fancybox($content){ // 匹配图片并为其添加 Fancybox 的 data 属性 $pattern = array( "/<img(.*?)src=('|\")([^>]*).(bmp|gif|jpeg|jpg|png|swf)('|\")(.*?)>/i", "/<a(.*?)href=('|\")([^>]*).(bmp|gif|jpeg|jpg|png|swf)('|\")(.*?)>(.*?)<\/a>/i" ); $replacement = array( '<a$1href=$2$3.$4$5 data-fancybox="gallery"><img$1src=$2$3.$4$5$6></a>', '<a$1href=$2$3.$4$5 data-fancybox="images"$6>$7</a>' ); $content = preg_replace($pattern, $replacement, $content); return $content; }

配置后效果

  1. 自动链接图片

    文章中的 <img> 标签会自动嵌套在 <a> 标签中,并添加 data-fancybox 属性,使图片支持 Fancybox 的放大和灯箱功能。

  2. Fancybox 样式和功能

    放大图片时,带有过渡动画,背景半透明,支持左右导航切换。

  3. 多图支持

    多张图片会自动分组到同一个灯箱中(data-fancybox="gallery")。


验证步骤

1. 验证图片自动加链接

发布或编辑一篇文章,确保图片没有手动添加链接。刷新页面后检查 HTML 代码:

  • 图片应该被包裹在 <a> 标签中。

  • 例如:

    php 复制代码
    <a href="image-url.jpg" data-fancybox="gallery"> <img src="image-url-thumb.jpg" alt="图片描述"> </a>
2. 检查资源加载

使用浏览器的开发者工具(F12)确认:

  • jquery.fancybox.min.cssjquery.fancybox.min.js 文件是否加载成功。
  • 没有 JavaScript 报错。
3. 测试图片效果

点击文章中的图片:

  • 图片会以 Fancybox 弹出显示,背景半透明。
  • 如果有多张图片,可以点击左右箭头切换。
相关推荐
万亿少女的梦16842 分钟前
基于php的web系统漏洞攻击靶场设计与实践
前端·安全·web安全·信息安全·毕业设计·php
网硕互联的小客服1 小时前
云服务器加了安全组端口还是无法访问
开发语言·php
lzb_kkk4 小时前
【C++】JsonCpp库
开发语言·c++·json·1024程序员节
爱码网页成品4 小时前
HTML静态网页成品作业(HTML+CSS)——婚礼婚纱网页设计制作(6个页面)
前端·css·html
长风清留扬4 小时前
小程序在智慧城市构建中的角色与功能研究
javascript·css·人工智能·微信小程序·小程序·html·智慧城市
大嘴史努比5 小时前
前端-如何做一个关键字生成组件
前端·javascript·css
WebDesign_Mu7 小时前
HTML+CSS+JS制作中国传统节日主题网站(内附源码,含5个页面)
javascript·css·html
一点一木7 小时前
Can I Use 实战指南:优化你的前端开发流程
前端·javascript·css
工业甲酰苯胺7 小时前
JVM实战—OOM的定位和解决
服务器·jvm·php
疯狂的沙粒8 小时前
HTML和CSS相关详解,如何使网页为响应式?
前端·css·html