Я использовал чудесный мобильные обнаружения в моем заголовке темы WordPress в течение некоторого времени. Это выходит за рамки медиа-запросов 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' );
Любая помощь приветствуется. Большие неловкие объятия из Корнуолла, Великобритания.
Пожалуйста, попробуйте следующий код:
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' );
Надеюсь, что это работает как ожидалось.
Других решений пока нет …