[WPImage2WeiBo] WordPress 微博图床插件

几个月前将博客升级成 HTTPS 了, 导致七牛图床全部失效啦,七牛提供的二级域名不支持 HTTPS, 只能绑定备案的自定义域名,然而并没有已备案域名,只能抛弃七牛啦。搜了一下,发现微博是支持 https 的,于是打算使用微博的图床。

下载安装:https://github.com/YouthLin/WPImage2WeiBo

思路

为了防止以后微博突然禁用外链,文章里的链接在数据库中还是保存为原始的路径。即 http://your-domain.com/wp-content/uploads/2017/01/01/xxx.jpg 这样的形式。
而在输出文章时,替换每个图片链接为微博外链。这样只要原始图片文件一直存在,就算微博禁用了外链,我们把插件一关,也还可以使用原始图片。
所以插件要做的事就是,把原始图片上传到微博中,并维护一个原图链接到微博外链的对应关系。在输出文章时,用外链替换就行了。

下载七牛图片

由于之前图片都在七牛,所以想把文件都自己保管一份。
如果你之前没有迁移过博客,只是使用七牛插件,把本地文件上传到七牛的话,那么你的空间应该是保留有原始文件的,可以跳过这一步。
如果要下载七牛云里所有文件,参见上一篇文章:下载七牛云空间所有文件

微博图床插件

效果:输出文章时,会自动检测图片链接,若是新增的图片链接,那么会上传到微博中,使用微博外链替换原图链接输出。原图链接与外链的对应关系保存在数据库中。
实现:网上已有 PHP 上传图片到微博的代码,不过是需要 cookie 的,Cookie 如何获得并保持有效,这里用的方案是保存用户名与密码进行自动登录。
所以其实整个插件就三部分,一是 WordPress 插件的写法,hook 拦截文章输出等;二是微博自动登录更新 cookie; 三是上传图片。

WordPress 插件开发

这个网上资料很多,搜几篇看一下就可以开始了,然后要实现什么功能再继续搜索。
比如通用的做法是插件头信息,监听插件启用、停用、卸载。然后要对文章输出进行处理,那么需要了解要用到哪个过滤器。另外在后台需要配置用户名密码,涉及到插件如何在设置里添加子页面。

先来看一下文件组织:

由于之前没有用 PHP 写过任何实际项目,所以文件夹我都是按写 Java 的习惯瞎分类的,不过反正能正常运行哈哈哈。
具体的代码就不写了,都是抄的已有实现。


利用微博当图床 – php 语言实现
获取微博登录 Cookies 的几种方案

如果不是 WordPress 要用微博图床的话,可以使用 Chrome 插件 GitHub 可以搜到几个:
https://github.com/fate-lovely/pic-on-weibo
https://github.com/suxiaogang/WeiboPicBed前两天逛博客又发现一个:
https://inn-studio.com/vbed/


“[WPImage2WeiBo] WordPress 微博图床插件”的一个回复

Loading...
  1. 悄悄说:其实去afraid家免费二级域名搜个叫“17ping”的com和cn都是已备案域名,可以直接用 [/发呆]
    就是不知2021年到期后还能不能再用了,反正到时再改也可以,就是比较麻烦。微博和七牛都挺了不少时间,看起来还是比较放心的。但微博会偶发删违规图片(有些即便不违规也被误判),所以国情所致,还是没法放心使用的。
    我还是准备自建图片附件存储方案,配合自己的系统和VPS,还要想出来一套比较完善的自动备份机制,真累啊……

发表评论

电子邮件地址不会被公开。 必填项已用*标注