您可以使用内置功能wp_is_mobile()
使用wp\\u enqueue\\u样式替代样式
add_action(\'wp_enqueue_scripts\', \'my_mobile_styles\');
function my_mobile_styles(){
if(wp_is_mobile()){
wp_register_style( \'my-mobile-style\', \'URL_to_stylesheet\', array(\'id-of-main-stylesheet\') );
wp_enqueue_style( \'my-mobile-style\' );
}
}
通过过滤器切换主题
stylesheet
和
template
过滤器可更改WordPress将呈现的主题。
# Parent Theme
add_filter( \'template\', \'my_mobile_template\', 99999, 1);
function my_mobile_template($template){
if(wp_is_mobile())
return \'mobile_template_dir_name\';
return $template;
}
# Parent or Child Theme (if applicable)
add_filter( \'stylesheet\', \'my_mobile_stylesheet\', 999999, 1);
function my_mobile_stylesheet($stylesheet){
if(wp_is_mobile())
return \'mobile_stylesheet_dir_name\';
return $stylesheet;
}
隔离到移动用户代理
您可以通过在条件IF语句括号内使用从wp_is_mobile()提取的以下内容来进一步扩展此功能。
$is_ios = strpos($_SERVER[\'HTTP_USER_AGENT\'], \'Mobile\');
$is_android = strpos($_SERVER[\'HTTP_USER_AGENT\'], \'Android\');
$is_silk = strpos($_SERVER[\'HTTP_USER_AGENT\'], \'Silk/\');
$is_kindle = strpos($_SERVER[\'HTTP_USER_AGENT\'], \'Kindle\');
$is_blackberry = strpos($_SERVER[\'HTTP_USER_AGENT\'], \'BlackBerry\');
$is_opera_mini = strpos($_SERVER[\'HTTP_USER_AGENT\'], \'Opera Mini\');
从那里,您可以将覆盖主主题的样式排队。
注意,需要注意的是,有一个函数switch_theme()
不用于本案例。它实际上改变了主题和样式表在数据库中的位置。switch_theme()
将在检测到移动用户代理时将您的主题更改为所有用户的移动版本。
测试我通常使用一些浏览器扩展来更改浏览器用户代理定义,以测试类似的内容。以下是我使用过的一些链接:
铬-User Agent SwitcherUser Agent Switcher希望这对你有所帮助!