Правильное использование wp_is_mobile ()?


18

Я разработал адаптивную тему и хочу представить ее на wordpress.org . Прежде чем отправить его, я хочу использовать его wp_is_mobile()в своей теме, но, согласно справочнику по функциям / wp является мобильным, это плохая идея, потому что она гласит:

Вы должны понимать, что это не определяет мобильный телефон специально, поскольку планшет считается мобильным устройством. Проверьте область плагинов для нескольких полезных альтернатив. Это также не должно использоваться для тем.

Так что, если я использую это в моей теме functions.php, как это:

add_filter('body_class','mobile_theme_body_class');     
function mobile_theme_body_class( $classes ){

    if ( wp_is_mobile() ){
        $classes[] = 'mobile';
    }
    else{
        $classes[] = 'desktop';
    }
    return $classes;
}

Будет ли моя тема отклонена?

Суб-вопрос:

Если я использую свою функцию, как в приведенном выше коде, и использую плагины кэширования, такие как (WP Super Cache), не испортится ли моя функция (не удалось выполнить или возвращает ложные срабатывания)?

Спасибо за ваше время и ответы ...


1
Говорят, у нас есть эта функция, но мы ее не используем, потому что она нехороша - как иронично. Я не знаю, отклонит ли ваша тема его использование, но если это так, то это увеличит иронию до максимума. Ведь это функция WP и не рекомендуется.
Николай

3
Реальный вопрос в том, почему вы хотите добавить класс mobile / desktop?
TheDeadMedic

1
То, что @TheDeadMedic говорит, правда, вы можете работать с медиа-запросами CSS, например.
Николай

1
wp_is_mobile()на самом деле не более, чем шутка, и она действительно ненадежна. Он опирается на сторону пользователя, которой может манипулировать конечный пользователь. Вы должны знать, что ваша функциональность выйдет из строя более чем в 10% случаев, поэтому большое количество мобильных пользователей будут загружать настольный контент, нравится им это или нет, или вы этого не хотите
Pieter Goosen

4
Так что он есть и сосет так же, как query_posts ();
Dejo Dekic

Ответы:


31

В самом непрофессионале термин wp_is_mobile()не для стилизации вашей темы.

Как это работает: Соответствует некоторым собственным именам устройств в строке User Agent String. Поэтому, если кто-то манипулирует строкой и отправляет ложную информацию, вы не можете определить, какое это устройство. И оно не возвращает имя устройства, оно просто возвращается, trueесли вы находитесь не на рабочем столеfalse

Как WordPress использует это: WordPress нигде не использует его для стилизации или добавления CSS. WordPress использует его для добавления или манипулирования вещами, которые должны быть только на мобильных устройствах (независимо от размера и имени), например, для добавления сенсорных скриптов, добавления окна просмотра, мобильного класса в заголовке администратора, добавления мобильных кнопок.

Эффект кэширования : если вы используете плагин кэширования, он бесполезен. Как ваш код не выполняется каждый раз, так что вы получите один и тот же результат каждый раз.

WordPress в основном использует его в бэкэнде, и почти каждый плагин кэширования исключает кеширование в бэкэнде или, скажем, для вошедшего в систему пользователя. Так что работает нормально.


1

wp_is_mobile()связано HTTP USER AGENT, это не связано с размером экрана

wp_is_mobile вернуть истину или ложь на основе $_SERVER['HTTP_USER_AGENT']

если $_SERVER['HTTP_USER_AGENT']содержит Mobile (Android или BlackBerry или т. д.),

затем wp_is_mobileвозвращает - истина (определяется как мобильное устройство), если нет, то он вернетсяfalse

простой вариант использования - чтобы сделать ссылку, попробуйте перейти на мобильное приложение или веб-страницу.

для получения дополнительной информации проверьте исходный код функции

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.