我一直在WordPress主题标题中使用奇妙的mobile-detect。它超越了CSS媒体查询,并通过响应式构建提供了更大的灵活性。
但是,我现在想根据设备向body标签添加类。所以我写了一个函数,理论上应该工作。但事实并非如此,无论设备如何,我都会获得桌面课程。
require_once( get_template_directory() . '/mobile-detect/Mobile_Detect.php'
);
$detect = new Mobile_Detect;
$mobile = $detect->isMobile();
$tablet = $detect->isTablet();
function device_body_class ( $classes ) {
if ( $mobile ) {
$classes[] = 'mobile';
if ( $tablet ) {
$classes[] = 'tablet';
} else {
$classes[] = 'phone';
}
} else {
$classes[] = 'desktop';
}
return $classes;
}
add_filter( 'body_class', 'device_body_class' );
非常感谢任何帮助。来自英国康沃尔的大尴尬拥抱。
答案 0 :(得分:2)
请尝试以下代码:
function device_body_class ( $classes )
{
$detect = new Mobile_Detect;
$mobile = $detect->isMobile();
$tablet = $detect->isTablet();
if ( $mobile ) {
$classes[] = 'mobile';
if ( $tablet ) {
$classes[] = 'tablet';
} else {
$classes[] = 'phone';
}
} else {
$classes[] = 'desktop';
}
return $classes;
}
add_filter( 'body_class', 'device_body_class' );
希望它按预期工作。