优化文章随机缩略图

  3,563 ℃

CONTENT

关于文章缩略图,细心的朋友应该能发现每次刷新本博客,背景图和文章缩略图是不同的。

之前为了偷懒不想把每一篇文章都设置不同的缩略图,于是做个一个插件调用函数取随机图片,但是有个问题就是WordPress对于相同函数和同一个URL的之作一次请求。这就导致我文章所有图片都是同一张,于是采用了一个非常笨的办法就是建立多个API文件,通过函数随机调用API,再通过API随机调用图片。这个方法导致每一张图片需要做两次请求,很大程度上限制了加载速度。

今天查资料想到一个解决方法,为什么一定要让文章每次刷新的图片都不一样。只要头图随刷新改变,文章缩略图可以在发布文章时挂一个钩子来设置随机的图片地址。既实现了文章图片不重复,也减轻了服务器压力。

做个笔记,待完成。

2018/10/16更新

笨办法:之前写到用多次请求+转向的的方式来实现随机图片。这样就牺牲了访问速度、加大了服务器压力。于是今天考虑在文章发布时自动设置图片,发现wordpress并不支持设置外链图片为缩略图。(在媒体库里随机抽图片显示的方法肯定是行不通的,因为媒体库的图片太乱,不一定都适合做头图。)

 

新思路:我的随机API地址:https://img.langzi.xin/random-bg.php 参数:?return=json

例如:https://img.langzi.xin/random-bg.php?return=json

突然想到既然WordPress对于API只做一次请求,从而导致一个API地址只能获取到同一张图片。如果在请求最后面加一个参数呢?

于是我试了一下发现 https://img.langzi.xin/random-bg.php?return=1 和https://img.langzi.xin/random-bg.php?return=2

这两个URL添加到媒体库之后获取的图片不一样。那么只需要在请求最后带上一个随机数,那么获取到的图片就一定不一样。

明天上代码。

(笔记:获取文章ID,在API最后加上文章ID,避免了数字重复。

如编号为1文章的头图为https://img.langzi.xin/random-bg.php?return=1

编号为2文章的头图为https://img.langzi.xin/random-bg.php?return=2)

 

function lz_get_Randombg() {
	global $post;
        //获取文章别名。我的博客文章别名是从1开始的连续数字。
	$lz_post_id = $post -> ID;
	$lz_api_url = 'https://img.langzi.xin/bg.php?return=';
        //添加数字到URL最后。简单明了。
	$lz_return_url = $lz_api_url.$lz_post_id;
	return $lz_return_url;

至于怎么用?我都授人以渔了,还要我授人以鱼?

评论: | NOTHING

暂无评论...