【教程】Typecho Joe主题开启并修复壁纸相册不显示问题

   日期:2024-12-26    作者:shop3158 移动:http://oml01z.riyuangf.com/mobile/quote/41887.html

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn]

Joe主题本身支持“壁纸”功能,其实就是相册。当时还在网上找了好久相册部署的开源项目,太傻了。

但是网上教程很少,一没说如何开启壁纸功能,二没说开启后为何不显示图片,三没说如何显示自定义图片。

通过层层深扒源码,我已经成功修复并实现了上述问题。所以,这个重任还是由我来吧。接下来将是非常详细的图文教程,小白有手就行。

进入后台,创建独立页面

标题随便填,最关键的是模板要选“壁纸”

直接发布页面即可

发布后点上面这个提示进去页面

比如我的:

此时你会看到一直在转圈圈,你也不知道如何去添加图片

SSH进入服务器后台,进到Joe主题下面的public目录。这个路径都是一样的,直接复制即可

打开route.php,直接替换里面的两个函数

function _getWallpaperType($self) 改成

function _getWallpaperList($self) 改成

保存后刷新页面,就可以惊喜的发现能成功显示360壁纸了

那如何让它显示我们自己的图片呢?Joe显示壁纸的代码是固定的,所以我们只需要按照360壁纸的接口来设计我们的服务api就行。

壁纸分类接口

先看壁纸分类,360接口示例:

http://cdn.apc.360.cn/index.php?c=WallPaper&a=getAllCategoriesV2&from=360chrome

实际有用的

如果你有服务程序开着,那么就返回这种类型的数据就行。我不想单独再开个监听服务程序,所以后面会讲我的简单方法。

壁纸图片接口

对于根据分类获取图片的360接口:

http://wallpaper.apc.360.cn/index.php?c=WallPaper&a=getAppsByCategory&cid={

实际有用的:

同样的, 如果你有服务程序开着,那么就返回这种类型的数据就行。我不想单独再开个监听服务程序,所以后面会讲我的简单方法。

替换自己的图片

超级简单的方法。直接在网站目录下创建一个文件夹,里面每个子目录就是一个分类,子目录名是cid,分类信息用image_types.json保存,图片信息用image_details_{cid}.json保存,而generate.py可以根据子目录自动生成image_details_{cid}.json。

举个栗子,我创建了mypics目录

目录结构:

子目录1中的内容:

image_types.json

generate.py

执行generate.py生成image_details_1.json:

image_details_1.json

最主要的!还要去修改route.php中的两个函数!

function _getWallpaperType($self) 改为

function _getWallpaperList($self) 改为

改完保存后,去刷新壁纸页面,就可以看到已经顺便变成我们自己的图了

后续修改

之后要调整内容,就只需要在mypics目录下放个子目录,然后手动将这个子目录信息写到image_types.json,然后直接执行generate.py就可以了。

图片会占用大量内存,如果资金充足可以买一个CDN。另一种方法是加上缓存。对于Typecho可以用这个插件:

注意需要开启php-redis,比如我的是php8.1版本:

然后安装redis:


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号