Loading... <div class="tip share">请注意,本文编写于 1245 天前,最后修改于 664 天前,其中某些信息可能已经过时。</div> ## 前言 `Handsome`主题提供了随机头图的功能,头图一般保存在`/usr/themes/handsome/usr/img/sj/`文件夹下,而我比较喜欢无压缩版本的图片,而由于我的主机是华为云的`1M`带宽学生机,所以会导致博客加载非常非常慢,而如果把头图放到cdn上,又会造成流量的浪费。 一般站长们都会建立一个自己的图床,用的比较广泛的便是新浪图床,比如我魔改后的[域内图床](https://img.ruixiaolu.com "域内图床")就是基于新浪图床的。那么我们能不能利用这个网站制作自己的随机图片`API`呢?答案当然是可以的,往下看就好了:laughing: ## 准备 1. 首先你需要安装`fantasyfield`幻想领域图床,当然其他图床理论上也是可以的,但你可能就要自己变通一下。 2. 你需要一个数据库管理软件,如果你的网站数据库可以外网访问,你可以使用`datagrip`,如果不能外网访问,你需要在`VPS`上安装`PhpMyAdmin`,当然如果你非常熟悉数据库命令的话,也可以直接在命令行中操作 ## 修改数据库 `fantasy field`的数据库有三张表,`navi`表存储首页导航信息,`user`表存储注册用户信息,`pic`表存储图片信息,很明显,我们要用的就是`pic`这张表。浏览一下这张表,我们发现其结构为 | 列名 | 含义 | | :- | :- | | id | 存储图床的图片的自增值 | | pid | 存储图片的`url`后缀 | | uid | 存储上传者的`id` | | date | 存储上传时间 | | ip | 存储上传者的`IP`地址 | 那我们怎么区分哪些是用来做头图的,哪些只是文章内的插图呢?总不能直接随机,万一有坏人上传难以言说的图片被我随机当作头图了岂不是很尴尬:laughing: 解决方案呢,就是给数据表加一列,用来判断是否作为头图,如果你是用`phpmyadmin`的话,直接点击下面那个按钮就可以增加一列 ![5cd5391910091.jpg][1] <div class="tip inlineBlock info"> 我这里已经增加了一列,所以有 IsNicHeadPicture 这个属性 </div> 然后,照着下面的图填入红圈中的三个值再点击执行就可以了 ![5cd539199d4e3.jpg][2] <div class="tip inlineBlock warning"> 这里我们使用0为默认值,代表不用做随机图片API的范围 </div> 现在我们可以将想用作随机图片`API`的图片的`IsNiceHeadPicture`值手动设置为`1`,以便之后的操作。 ## 随机图片`API` 在你的图床网站根目录下创建一个名为`random.php`的文件,内容为 <div class="hideContent">此处内容需要评论回复后(审核通过)方可阅读。</div> <div class="tip inlineBlock error"> 请将上面$sql这条语句中的 fantasyfield_pic 更改为你实际的数据库中 pic 这个表的名字 </div> 然后保存,现在我们就可以通过`http://你的图床域名/random.php`使用随机图片了~ ## 配置`handsome` 将`Handsome`主题的随机头图来源设置为我们的随机图片`API`,修改`typecho`目录下的`/usr/themes/handsome/libs/Content.php`文件 ```php //修改whenSwitchHeaderImgSrc函数最后的返回值,5.0版本的大约在565行 //原本为 elseif ($howToThumb == '3'){ if (!empty($thumbField)){ return $thumbField; }else{ return $random; } } //修改为 elseif ($howToThumb == '3'){ if (!empty($thumbField)){ return $thumbField; }else{ return "https://你的图床域名/random.php?".rand(); } } ``` 然后在主题后台设置中选择第四种头图设置即可 ![5cd5391c82eaa.jpg][3] 此时即可实现,如果你在文章的自定义字段中设置了头图,会使用你设置的特定头图,如果没有设置,则使用我们刚刚完成的随机图片`API`实现高质量头图秒速加载。 [1]: https://blog.ruixiaolu.com/usr/uploads/20200312023011.jpg [2]: https://blog.ruixiaolu.com/usr/uploads/20200312023023.jpg [3]: https://blog.ruixiaolu.com/usr/uploads/20200312023033.jpg 最后修改:2020 年 10 月 24 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 1 如果觉得我的文章对你有用,请随意赞赏
16 条评论
测试
hh
666
6
ヾ(≧∇≦*)ゝ