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 弹出显示,背景半透明。
  • 如果有多张图片,可以点击左右箭头切换。
相关推荐
墨渊君2 分钟前
“蒙”出花样!用 CSS Mask 实现丝滑视觉魔法
前端·css
Bruce1234 小时前
web专题之php代审(二)
php
小帆聊前端4 小时前
Flex 布局实战指南:从踩坑到精通,解决 90% 布局难题
css
谢尔登4 小时前
【CSS】层叠上下文和z-index
前端·css
BingoGo4 小时前
PHP-FPM 深度调优指南 告别 502 错误,让你的 PHP 应用飞起来
后端·php
Alice-YUE4 小时前
【CSS学习笔记3】css特性
前端·css·笔记·html
睡不着先生4 小时前
CSS `:has()` 实战指南:让 CSS 拥有“if 逻辑”
css
亿坊电商14 小时前
物联网领域中PHP框架的最佳选择有哪些?
物联网·struts·php
yddddddy14 小时前
css的基本知识
前端·css
昔人'14 小时前
css `lh`单位
前端·css