WordPress Mobile Detect作为body_class函数

时间:2017-09-19 08:23:23

标签: php wordpress function wordpress-theming responsive

我一直在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' );

非常感谢任何帮助。来自英国康沃尔的大尴尬拥抱。

1 个答案:

答案 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' );

希望它按预期工作。