起因
博客的相册页一直靠一段纯文本格式维护:
[相册名]
标题,日期,缩略图地址,大图地址每次加照片都要先传图、复制两个地址、再按逗号拼一行……麻烦,还容易把页面格式写坏。更早之前删了一次相册页,照片记录也全丢了。
所以给博客写了一个 Typecho 插件:PhotoAlbum。
它是什么
一个 Typecho 1.3 的相册管理插件,在后台完成相册和照片管理,自动维护相册页内容:
- 新建 / 删除相册;
- 多选上传,自动生成 800px 缩略图;
- 单张改名 / 批量改名;
- 拖拽排序(也保留上移、下移按钮);
- 设为相册封面;
- 删除照片 / 相册时可选「同时删除图片文件」;
- 后台顶部「相册」快捷入口。

相册页效果

兼容性:
| 部分 | 要求 |
|---|---|
| 后台管理 | 任意 Typecho 1.3(PHP 8+),不依赖主题 |
| 前台相册页 | 需要主题提供兼容的 page-photo.php 模板 |
安装与使用
- 把
PhotoAlbum/上传到usr/plugins/; - 后台 → 插件 → 启用「相册管理」;
- 点后台顶部的「相册」;
- 新建相册 → 多选上传照片;
- 前台访问
/photo.html(相册页 slug 用photo)。
如果相册页不存在,插件后台会显示 「创建相册页」 按钮,一键创建(标题「相册」、slug photo、模板 page-photo.php),并把已有照片数据写回去。
几个实现细节
- 不改核心、不改主题:插件只有
Plugin.php、admin.php、README,后台页面自带样式; - 数据独立存储:相册数据存在
usr/uploads/photoalbum.json,页面正文只是生成结果;删页重建、正文清空都能恢复; - 页面自动修复:删页重建后 slug 变成数字或
photo-html,插件会自动改回photo、补模板、写回内容; - 安全:管理员登录校验 + 表单 token;上传时校验图片类型和大小;
- 缩略图:GD 生成 800px 缩略图,GD 不可用时退回原图;
- 删文件:只删
uploads目录内、且没有被其他相册引用的图片,默认不勾选。
已知限制
- 主题需要有兼容的
page-photo.php模板; - 受主机上传限制(我这里是单文件 10M、整包 10M);
- 「封面」目前是标记 + 移到第一张,ComBox 的相册标签页不显示封面缩略图(那需要改主题,暂未做);
- 删除文件只处理插件上传目录内的图片。
下载
- 插件包(v1.2.0):https://www.anquanyuan.cc/downloads/photoalbum-plugin.zip
- 在线相册:https://www.anquanyuan.cc/blog/photo.html
- 安装与兼容说明:见插件包内的 README.md
如果你也在用 Typecho,欢迎拿去用或继续改。
评论 暂无评论