将 WordPress 媒体图片上传到 LskyPro(兰空图床),并替换媒体库中的图片访问地址。
- WordPress 6.0+
- PHP >= 7.4
- fileinfo(必须)
- curl(必须)
- imagemagick(可选)
- Bash、tar、awk、zip(仅构建发布包时需要)
插件设置页只需要填写 LskyPro 域名,不需要手动填写 /api/v1 或 /api/v2。
示例:
https://img.example.com
插件会根据你选择的 API 版本自动生成接口地址:
v1 -> https://img.example.com/api/v1
v2 -> https://img.example.com/api/v2
如果误填了完整 API 地址,例如:
https://img.example.com/api/v2
插件保存时也会自动归一化为域名,并按当前 API 版本重新生成接口地址。
下载对应渠道的 release zip 包,解压到 WordPress 的 wp-content/plugins 目录。
两个渠道的包结构不同:
- GitHub/自建发布包:目录名保持为
lsky_plugin_wp,入口文件保持为LskyPro.php,用于兼容老版本用户。 - WordPress.org 审核包:目录名为
yaoyue-image-upload-for-lskypro,入口文件为yaoyue-image-upload-for-lskypro.php,符合官方插件目录 slug 习惯。
进入 WordPress 后台,在插件页面启用 YAOYUE Image Upload for LskyPro,然后打开 YAOYUE Image Upload 配置:
- API 版本:选择
v1或v2 - LskyPro 域名:填写兰空图床站点域名
- Tokens:填写或通过用户名密码临时获取
- 隐私设置:
1 = 公开,0 = 私有 - v2 可选择相册和存储策略
本插件会在启用并配置后,将 WordPress 媒体图片上传到用户自行填写的 LskyPro(兰空图床)服务。
可能发送到 LskyPro(兰空图床)服务的数据包括:
- 图片文件
- 图片文件名
- MIME 类型
- 用户配置的 Token
- 开源版 V1 获取 Token 时临时提交的用户名和密码
插件不会保存开源版 V1 的密码,密码只在点击保存或更新 Tokens 时用于本次请求。
请在使用前确认你配置的 LskyPro(兰空图床)服务条款和隐私政策。若使用自建 LskyPro(兰空图床)服务,请以你的自建服务规则为准;若使用第三方 LskyPro(兰空图床)服务,请遵守该第三方服务的条款。
当前开发仓库建议放在测试环境的 src/lsky_plugin_wp,不要和 WordPress 已安装插件目录混在一起。
如果使用外层 Docker 测试环境:
- WordPress:以
.env中的WORDPRESS_PORT为准,默认http://localhost:8080 - phpMyAdmin:http://localhost:8081
- 已安装插件目录:
plugins/yaoyue-image-upload-for-lskypro - 开发源码目录:
src/lsky_plugin_wp
常用命令:
docker compose up -d
docker compose run --rm wpcli plugin status yaoyue-image-upload-for-lskypro
docker compose logs -f wordpress如需临时测试开发源码,可从外层测试环境启用 dev override:
docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d
docker compose run --rm wpcli plugin deactivate yaoyue-image-upload-for-lskypro
docker compose run --rm wpcli plugin activate lsky_plugin_wp测试 WordPress.org 安装包时,使用默认 compose,并启用 yaoyue-image-upload-for-lskypro。
若需要在本地构建发布包,Debian/Ubuntu 可安装构建依赖:
sudo apt-get update
sudo apt-get install -y zip tar gawk本插件支持两个发布渠道:
- WordPress.org 审核包:不包含
Update URI和自托管更新器,由 WordPress.org 官方更新系统处理。 - GitHub/自建发布包:包含
Update URI和自托管更新器,用于2.0.5及之后版本的自建渠道更新。
构建命令:
bash build-channel.sh wporg
bash build-channel.sh github构建产物:
build/yaoyue-image-upload-for-lskypro-wporg.zip
build/lsky_plugin_wp-github.zip
包结构:
yaoyue-image-upload-for-lskypro-wporg.zip
└── yaoyue-image-upload-for-lskypro/
└── yaoyue-image-upload-for-lskypro.php
lsky_plugin_wp-github.zip
└── lsky_plugin_wp/
└── LskyPro.php
GitHub Actions 会在每次 push / pull request 时构建两个渠道的包作为 artifacts;当推送 v* tag 时,会自动将 build/lsky_plugin_wp-github.zip 上传到 GitHub Release。
旧版本用户的第一次升级路径需要单独注意:2.0.4 及更早版本使用旧更新器读取 GitHub releases/latest 接口,并下载 GitHub 自动生成的 Source code zip(zipball_url),不是 Release asset 中的 lsky_plugin_wp-github.zip。因此发布 v2.0.5 tag 本身仍然是必须的,旧更新器会通过该 tag 的 Source code zip 升级到 2.0.5。
从 2.0.5 开始,GitHub/自建发布包默认通过以下地址检查更新:
https://fjwr.xyz/wp-plugin-updates/lsky_plugin_wp/update.json
更新清单可参考仓库中的 update.example.json:
{
"version": "2.0.6",
"requires": "6.0",
"tested": "7.0",
"requires_php": "7.4",
"homepage": "https://github.com/xiaoyaohanyue/lsky_plugin_wp",
"download_url": "https://github.com/xiaoyaohanyue/lsky_plugin_wp/releases/download/v2.0.6/lsky_plugin_wp-github.zip",
"description": "将 WordPress 媒体上传到 LskyPro(兰空图床)。",
"changelog": "<ul><li>修复区块编辑器内容的响应式图片 srcset 地址。</li><li>新增一键修复历史图片数据工具。</li><li>补齐 Lsky 缩略图远程地址与路径元数据。</li></ul>"
}其中 download_url 应指向 GitHub Release 中的 lsky_plugin_wp-github.zip。这是 2.0.5 及之后版本默认使用的新更新通道;老版本用户从 2.0.4 升级到 2.0.5 时,仍由旧更新器下载 GitHub Source code zip 完成过渡。
GitHub/自建包的后台设置页提供更新渠道选择:
fjwr.xyz 更新服务:默认选项,读取https://fjwr.xyz/wp-plugin-updates/lsky_plugin_wp/update.json。GitHub Source code:读取 GitHubreleases/latest,并下载 GitHub 自动生成的 Source code zip。自定义 Manifest:填写自己的update.json地址,格式与update.example.json一致。
WordPress.org 审核包不会包含 Update URI、自托管更新器或更新渠道设置。
2025.1.14 更新:
2025.5.16 更新:
- 支持开源版以及付费版切换
- 增加插件商店更新功能
- 增加开源版通过用户名密码自动获取 token 以及刷新 token 功能
- 插件列表页面增加设置跳转
- 迁移设置页面入口
- 适配商业版 2.x 版本
- 增加移除插件自动清理配置
- 修复设置页面顶部警告
2025.5.17 更新:
- 修复部分命名规则无法正确获取图片名称的问题
2025.5.22 更新:
- 修复媒体库缩略图显示问题
2025.12.1 更新:
- 修复错误变量名导致的上传失败问题
2026.5.29 更新:
- 增加后台设置页权限校验和 nonce 校验
- 增加 AJAX 接口 nonce 与用户权限校验
- 优化配置保存方式,兼容旧版序列化配置
- 增加 WordPress.org 与 GitHub/自建渠道双构建方案
- GitHub/自建渠道支持
Update URI与自托管更新清单 - WordPress.org 包使用
yaoyue-image-upload-for-lskypro/yaoyue-image-upload-for-lskypro.php结构 - GitHub/自建包保留
lsky_plugin_wp/LskyPro.php结构兼容老用户 - 设置页只需填写 LskyPro 域名,插件自动生成
/api/v1或/api/v2 - 不再保存开源版 V1 密码,密码只用于本次获取 Tokens
- 优化上传失败时的错误处理,避免写入异常附件数据
- 修复数据库表名硬编码问题,改用 WordPress 标准接口更新附件
- 优化远程请求错误处理,补充 curl、fileinfo、API、Token 等前置检查
- 兼容 PHP 8.5 中
finfo_close和curl_close的弃用变更 - 优化一键替换脚本,支持后端传入 AJAX 地址和安全 nonce
- 修复 V2 相册和存储策略下拉选项的前端拼接风险
- 优化设置页面 UI
2026.6.15 更新:
- 修复上传到 LskyPro 后区块编辑器前端
srcset仍指向本地wp-content/uploads的问题 - 为新上传图片的缩略图 metadata 补齐远程
url和pathname - 新增后台维护工具,可一键修复历史 Lsky 图片 metadata、旧
ori_path和文章内容中已写入的本地srcset - 删除 Lsky 图片附件时同步清理原始本地上传文件
- 即使关闭新上传替换功能,历史 Lsky 图片仍会继续使用远程地址显示
插件名称:YAOYUE Image Upload for LskyPro
写的不好,大佬们勿喷。