Функция wp_is_mobile() – обзовем ее по праву да и понятности ради – условие: условный тег (условные теги WP и Woocommerce)
Проверит условие – как просматривается сайт: с мобильного устройства или десктоп версия? Условный тег.
На сервере мобильные устройства проверяются есть ли в переменной $_SERVER[‘HTTP_USER_AGENT’] указания: Android, IOS – Mobile, Opera Mini, Opera Mob, Android, Kindle, Silk, BlackBerryi (!! недостаточно широкий спектр устройств/функционала для определения !! ) и, соответственно возвратит или “истину” или “ложь” -true (мобильник) – false (десктоп):
wp_is_mobile()
НЕ ЯВЛЯЕТСЯ заменой медиа-запросов CSS.
Широко применяется в разработках адаптивного дизайна шаблонов для WP, однако, прежде чем работать с данным условием, следует изучить на практике отработку… к тому же существует как минимум три вариации адаптивного дизайна: Это также означает, что правильная тема может иметь как минимум три различные спецификации адаптивного дизайна: Mobile и AMP, Desktop.
многие новички-разработчики пытаются использовать данную функции для обеспечения скорости загрузки страницы, однако:
Главная проблема состоит в том, что это условие нужно использовать крайне осторожно, потому что на многих сайтах используется КЭШ: кэширования страниц ДОЛЖНО иметь различные модульные сегменты для мобильных и десктопных устройств, если ваш шаблон отрабатывает ПО РАЗНОМУ для мобильных и десктопных устройств.
Учитывайте отработку функцию кэширования в вашем шаблоне/сайте в целом!..
Повторяюсь: условие wp_is_mobile()
определяет устройство в данных переменной HTTP_USER_AGENT
(ЭТО НЕ СВЯЗАНО с определением размера экрана !!!! )
хуки из функции wp_is_mobile
возвращает:
true | false в зависимости, скажем так, от средства просмотра сайта.
использование
if ( wp_is_mobile() ){ инфа/код }
пример:
//Проверка с мобильник или компьютер
if ( wp_is_mobile() ) {
// информация для мобильных устройств.
}
или:
<?php if ( wp_is_mobile() ) : ?>
//Display and echo mobile specific stuff here = Отображать информацию для мобильных устройств
<?php else : ?>
//Display and echo desktop stuff here = Отображать содержимое десктоп
<?php endif; ?>
В ядре WordPress функция располагается по пути: wp-includes/vars.php
function wp_is_mobile() {
if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
$is_mobile = false;
} elseif ( str_contains( $_SERVER['HTTP_USER_AGENT'], 'Mobile' ) // Many mobile devices (all iPhone, iPad, etc.)
|| str_contains( $_SERVER['HTTP_USER_AGENT'], 'Android' )
|| str_contains( $_SERVER['HTTP_USER_AGENT'], 'Silk/' )
|| str_contains( $_SERVER['HTTP_USER_AGENT'], 'Kindle' )
|| str_contains( $_SERVER['HTTP_USER_AGENT'], 'BlackBerry' )
|| str_contains( $_SERVER['HTTP_USER_AGENT'], 'Opera Mini' )
|| str_contains( $_SERVER['HTTP_USER_AGENT'], 'Opera Mobi' ) ) {
$is_mobile = true;
} else {
$is_mobile = false;
}
/**
* Filters whether the request should be treated as coming from a mobile device or not.
*
* @since 4.9.0
*
* @param bool $is_mobile Whether the request is from a mobile device or not.
*/
return apply_filters( 'wp_is_mobile', $is_mobile );
mihalica.ru !
Да… недоработанная функция. Или просто не для целей ускорения загрузки)