WordPress 技巧:设置不同的访问设备加载不同的主题

有些时候我们需要在特定情况下(如移动设备访问时)加载不同于站点现在选择的 WordPress 主题,可以使用以下代码:

<br />
//根据访问设备切换 WordPress 主题<br />
function wpjam_switch_theme($theme){<br />
	global $is_IE;<br />
	if($is_IE){<br />
		preg_match('/MSIE\s(\d)\.0;/', $_SERVER['HTTP_USER_AGENT'], $matches);<br />
		$IEversion = $matches[1];<br />
		if($IEversion=6){<br />
			$theme='twentyten';<br />
		}<br />
		if($IEversion=7){<br />
			$theme='twentyeleven';<br />
		}<br />
		if($IEversion=8){<br />
			$theme='twentytwelve';<br />
		}<br />
	}<br />
	if(wp_is_mobile()) {<br />
		$theme='twentytwelve';<br />
	}<br />
	return $theme;<br />
}<br />
add_filter( 'template', 'wpjam_switch_theme' );<br />
add_filter( 'stylesheet', 'wpjam_switch_theme' );<br />

你可以根据上面的代码自行修改,在何种设备访问时加载什么主题。注意主题名字一定是主题文件夹名字,而不是后台管理界面你看到的主题名字。而且这次代码也不能直接扔进 functions.php 文件中而是要做成一个插件上传启用。

不过还要注意一点,在这里我用了wp_is_mobile()这个wordpress自带函数来检测移动设备,不过这个很不准确,有很大可能不能正确判断移动设备。推荐使用我爱水煮鱼介绍的Mobile_Detect:移动设备(手机)检测的 PHP 类库 来精确检测移动设备。不仅仅用这个类检测移动设备,而且检测桌面浏览器版本,种类也是很方便很准确的。而且你可也在发挥下,稍稍改下代码,就能实现让用户自行选择使用桌面网站还是移动网站并记住选择。

标签:

热门文章