为 Typecho 博客系统提供增强的媒体管理能力,支持文件夹分类、附件 MIME 修复、编辑器快捷插入,完美兼容吉他谱等特殊文件类型。
- 📁 文件夹管理:可为附件创建文件夹,按目录分类管理
- 🔧 数据修复:自动将旧版序列化附件数据迁移为 JSON 格式,补全缺失的 MIME 类型
- 📎 编辑器集成:文章编辑页增加「媒体库」按钮,弹窗选择文件快速插入
- 🎸 特殊文件支持:自动识别
.gp/.gp5/.gpx/.gtp等吉他谱文件,插入[guitarpro]短代码 - 🖼️ 文件预览:支持常见图片、音视频、文档图标展示,显示文件大小
- 🔄 AJAX 操作:动态加载文件夹树和文件列表,无需刷新页面
- 下载插件压缩包,解压后将
MediaPU文件夹上传至 Typecho 的usr/plugins/目录 - 登录 Typecho 后台,进入「控制台」→「插件」
- 找到 MediaPU 插件,点击「启用」
- 激活后会提示创建数据表,并自动执行一次附件修复
插件需要 PHP 5.6+ 和 MySQL 数据库,要求 Typecho 1.0 以上版本。
在后台左侧导航「扩展」菜单下点击「媒体库」,进入文件管理页面(插件会添加该面板):
- 创建/编辑/删除文件夹
- 将现有附件移动到不同文件夹
- 查看文件的详细信息(URL、大小、MIME等)
- 批量修复附件数据
- 编辑文章时,在标题栏右侧找到 「媒体库」 按钮(带有照片/视频图标)
- 点击弹出媒体库窗口,左侧选择文件夹,右侧列出文件
- 点击文件卡片下方的 「插入」 按钮:
- 对于吉他谱文件(gp/gp5/gpx/gtp):插入
[guitarpro]文件URL[/guitarpro] - 其他文件:插入
[文件名](文件URL)格式的 Markdown 链接
- 对于吉他谱文件(gp/gp5/gpx/gtp):插入
- 文件会插入到编辑器中当前光标位置,弹窗自动关闭
如果历史附件在媒体库中显示异常(0KB、无链接等),可手动修复:
- 进入「插件」→ MediaPU 设置页,点击 「立即修复」 按钮
- 或者通过扩展菜单中的「媒体库」页面,点击顶部修复按钮(如有)
修复过程会:
- 将所有
type='attachment'的文章记录中的text字段从 PHP 序列化格式转为 JSON - 为每条附件记录补充
mime字段(根据文件扩展名映射) - 确保媒体库能正常读取所有文件信息
插件会创建两张表(表前缀由 Typecho 配置决定):
| 字段 | 类型 | 说明 |
|---|---|---|
| id | int(10) unsigned | 自增主键 |
| name | varchar(255) | 文件夹名称 |
| parent_id | int(10) unsigned | 父文件夹ID,0表示根目录 |
| created_at | int(10) unsigned | 创建时间戳 |
| 字段 | 类型 | 说明 |
|---|---|---|
| id | int(10) unsigned | 自增主键 |
| cid | int(10) unsigned | 附件内容ID(对应 contents.cid) |
| folder_id | int(10) unsigned | 所属文件夹ID,0表示根目录 |
Q:插入吉他谱文件后前台不显示播放器?
A:插件只负责插入短代码 [guitarpro],需要在主题中添加相应解析函数,或者安装支持 Guitar Pro 的播放器插件。
Q:启用插件后提示“无法创建数据表”?
A:检查数据库用户是否拥有 CREATE TABLE 权限。如果是 Typecho 1.3 以上版本,插件会尝试自动创建,若失败可手动执行 SQL。
Q:媒体库中看不到任何文件?
A:请先进入插件设置页点击「立即修复」,或者确保你的 Typecho 中已经上传过附件。修复完成后刷新媒体库页面。
Q:如何修改插入的标记格式?
A:直接编辑插件文件 MediaPU/Plugin.php,找到 insertText 生成逻辑(约第 222 行),按需修改。
- 初始发布
- 支持文件夹管理
- 附件序列化转 JSON + MIME 补全
- 编辑器媒体库弹窗
- 吉他谱文件特殊处理
- 作者:24pu.com
- 遵循 GPL-2.0 协议发布,详情见 LICENSE
如有问题或建议,请访问 24pu.com 留言。欢迎提交 Pull Request 改进插件功能。