自定义 Twenty Seventeen 页头媒体

依然是个性化了 WordPress 新的默认主题。这次的修改主要是修改页头部默认的那个图片。虽然 WordPress 的自定义设置可以修改随机图片和视频展示,但是如果可以从 bing 或者其他的地方获取更加随机性、有意思的图片呢?
一下改造是提取 bing 每天的背景图片,然后展示在咱们的页头。

bing的图片每天都会更新,并且国内的主要是以风景为主,没有什么出格的图片,适应性比其他风格要容易接受点。主要是访问也快。

主要的就是从 http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1 获取到每日图片的 url ,页面提供的 json 格式,但是我这里没有解析 json ,而是直接通过正则取得里边 url 地址。
url里边的参数format=js则输出json格式,不写则会输出xml格式;dix为获取图片的时间。0为今天,-1为明天,1为昨天等等等等。
没有缓存到本地,不知道对这个接口有没有调频率、次数等限制,暂且这样吧。

在functions.php添加如下代码


function twentyseventeen_custom_header_from_bing() {
//主要语句
$randomimg=get_parent_theme_file_uri('/assets/images/header.jpg');
$str=file_get_contents('http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1');
if(preg_match("/\"url\":\"(.+?)\",\"/ies",$str,$matches)){
    $randomimg = 'http://cn.bing.com'.$matches[1];
}
//此函数来源于原主题下的/inc/custom-header.php
add_theme_support( 'custom-header', apply_filters( 'twentyseventeen_custom_header_args', array(
	'default-image'      => $randomimg,
	'width'              => 2000,
	'height'             => 1200,
	'flex-height'        => true,
	'video'              => true,
	'wp-head-callback'   => 'twentyseventeen_header_style',
) ) );
}
add_action( 'after_setup_theme', 'twentyseventeen_custom_header_from_bing' );

当然除了 bing 还有别的网站也会提供类似的背景,只要用上边的方法,修改一些获取路径和正则就可以完美适配。

发表评论

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