wordpress 中添加图片放大功能

功能描述

  1. 使用 Fancybox 实现图片放大和灯箱效果。
  2. 自动为文章内容中的图片添加链接,使其支持 Fancybox。
  3. 修改了 header.php 和 footer.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.css 和 jquery.fancybox.min.js 文件是否加载成功。
  • 没有 JavaScript 报错。
3. 测试图片效果

点击文章中的图片:

  • 图片会以 Fancybox 弹出显示,背景半透明。
  • 如果有多张图片,可以点击左右箭头切换。
相关推荐
星光开发者9 小时前
基于决策树随机森林算法的小说推荐系统的设计与实现-计算机毕设【课程设计】78485
vue.js·算法·微信小程序·django·php·课程设计·express
weixin_4482902510 小时前
书庐开发实战教学
javascript·css·html
专业程序开发源12 小时前
SSM校园拍摄交流服务平台36936-计算机课程设计、毕业设计
java·spring boot·后端·python·elasticsearch·php·课程设计
星夜夏空9913 小时前
网络编程(5)—— Reactor实现(v3)
服务器·网络·php
weixin_4407305014 小时前
内置函数、json文本、pickle二进制
开发语言·python·json
念越16 小时前
接口自动化测试从入门到实战:接口用例设计、Requests、Pytest、YAML、JSON Schema 与 Allure 报告
python·测试工具·自动化·json·pytest
小此方16 小时前
Linux网络(二十):TCP拥塞控制与延迟应答详解:从拥塞窗口到TCP性能优化,理解TCP与UDP的效率差异
linux·网络·php
传人16 小时前
悬停旋转放大和位移效果如何写
前端·javascript·css
专业程序开发源17 小时前
springboot高校学生社团管理系统74810-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·spring·php·课程设计
AC赳赳老秦17 小时前
OpenClaw 与 FineBI 联动方案:公开数据自动采集与实时业务分析看板实践
大数据·开发语言·python·php·finebi·deepseek·openclaw