#WordPress#使用必应每日一图作登录页面背景

WordPress的登录界面在我第一次看到的时候就忍不住在心里一通吐槽

“这丫也太难看了吧”
“得改得改”
“这个wordpress的logo点击之后居然是跳转到wordpress官网,也忒不要脸了吧”
“路过路过”

记得在还没安装“WordPress”的时候有看到“WordPress使用Bing美图作为登录页面背景”,当时有留意一下,现在该付诸行动美化一下了。

百度了一篇修改的文章1、WordPress 使用必应(Bing)背景美图作为登录页面背景
不过博主使用的是1366*768分辨率的API接口,我想要1920*1080分辨率的图片啊

为了高清,我另外度娘了一下php获取必应每日一图的方法,找到两篇相对有用的文章:
2、5种方法获取Bing每日图片 附送高清API接口及网站背景调用
3、必应每日一图接口 – CSDN博客

缙哥哥博客没有提供php源码,提供了一个接口,对于一个有强迫症并且闲的发霉的人来说,直接调用是多么的不专业多么的无能,万一链接失效,我的设置且不是也没用了吗?所以我找到了第三篇文章,然而第三篇文章也没有提供源码,那就在第一篇文章源码的基础上修改吧

	//调用bing美图作为登录页背景图
	function custom_login_head(){
	$str=file_get_contents('http://cn.bing.com/HPImageArchive.aspx?idx=0&n=1');
	if(preg_match("/<url>(.+?)<\/url>/ies",$str,$matches)){
	$imgurl='http://cn.bing.com'.$matches[0];
    	echo'<style type="text/css">body{background: url('.$imgurl.');width:100%;height:100%;background-image:url('.$imgurl.');-moz-background-size: 100% 100%;-o-background-size: 100% 100%;-webkit-background-size: 100% 100%;background-size: 100% 100%;-moz-border-image: url('.$imgurl.') 0;background-repeat:no-repeat\9;background-image:none\9;}</style>';
	}}
	add_action('login_head', 'custom_login_head');

需要修改的因该是

	$str=file_get_contents('http://cn.bing.com/HPImageArchive.aspx?idx=0&n=1');
	//这里应该是必应每日美图接口
	if(preg_match("/<url>(.+?)<\/url>/ies",$str,$matches)){
	//这里应该是正则表达式获取文件名
	$imgurl='http://cn.bing.com'.$matches[0];
	//这里应该是合成图片URL

分析清楚了,剩下的就是更改这三个地方了,根据第三篇文章我们能够获取到必应每日高清美图接口
http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1
接着是正则表达式,这个东西没接触过啊,只能自己去试一试了
利用站长之家提供的工具:正则测试
最后我用的正则是“/\/(.+?).jpg/”
修改拼接地址http://s.cn.bing.net

所以修改之后的代码应该是这样:

/**自定义登录界面背景*/
//调用bing美图作为登录页背景图
function custom_login_head(){
	$str=file_get_contents('http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1');
	if (preg_match("/\/(.+?).jpg/", $str, $matches)) {
    	$imgurl='http://s.cn.bing.net'.$matches[0];
	}
    echo'<style type="text/css">body{background: url('.$imgurl.');background-repeat: repeat;background-position:center;background-image:url('.$imgurl.');background-repeat: repeat;background-position:center;-moz-border-image: url('.$imgurl.');background-repeat: repeat;background-position:center;}</style>';
	//这里我对background图片的样式进行了调整
	//方便小分辨率屏幕(如手机)显示图片正常,否则会被压缩
}
add_action('login_head', 'custom_login_head');

将以上代码加入至主题目录 Functions.php 文件最后面?>标签前(如果没有?>标签,则直接加到最后面)保存,WordPress登录界面背景就会每日更新为必应美图啦。

By the way,顺便提供一个获取高清原图的php源码

<?php
    $str=file_get_contents('http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1');
if (preg_match("/\/(.+?).jpg/", $str, $matches)) {
    $imgurl='http://s.cn.bing.net'.$matches[0];
}
if ($imgurl) {
    header('Content-Type: image/JPEG');
    @ob_end_clean();
    @readfile($imgurl);
    @flush();
    @ob_flush();
    exit();
} else {
    exit('error');
}
?>

把以上代码另存为bingpic.php放在服务器网站相应目录,通过访问就能直接调用必应高清图啦!
比如这个示例

至此就全部完成了!!!

——2018年2月26日上午10:58

长期没登陆都没发现必应美图API已经改了,原来的方法已经获取不到高清墙纸了,检查了一下,发现原来的XML还是可用的,应该只是必应的图片库链接改了,试了一下必应的官方官网+图片名,能够正常访问,更新如下:

	$imgurl='http://cn.bing.com'.$matches[0];

——2018年4月1日上午21:28

发布者

Xavier

这个人很懒,什么都懒得写。

发表评论