在最新一次的项目中,前端写了两个版本的页面,一个是PC端的页面,一个是移动端的页面,前端将页面写好之后交接到后台对接,上线后发现PC端和移动端打开页面的地址都是同一个域名地址,这使我好奇其中PC端和移动端是如何判断并准确跳转的,于是我在后台的PHP文件中找了一圈,想找找相关代码看看,但结果并没有找到,后来问后台人员,他说是在后台中提前判断了,并给看了相关代码,其中代码如下:
function mobile_switch_theme($theme){
$url = $_SERVER['HTTP_HOST'];
if( strpos($url , 'm.') !== false ){
$theme = 'move'; //theme为主题名
}elseif( wp_is_mobile() ){
$theme = 'move';
}else{
$theme = 'pc';
}
return $theme;
}
add_filter('template' , 'mobile_switch_theme');
add_filter('stylesheet' , 'mobile_switch_theme');
该代码在本次项目中是放在plugins文件中,和themes在统计目录下:
plugins.png
其中后台文件WordPress的文件夹规则为:
WordPress.png
前端显示的文件都是在themes文件中,在themes文件中有move和pc两个文件:
themes.png
mobile_switch_theme中的代码就是通过判断是否为移动设备,为theme指定主题,从而实现PC和移动端页面的同一个域名地址显示。
move和pc两个文件中子目录中的页面跳转的目录名称要一致。