Правильне використання wp_is_mobile ()?


18

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

Ви повинні усвідомити, що це не виявляє мобільний телефон конкретно, оскільки планшетний ПК вважається мобільним пристроєм. Перевірте область плагінів на кілька корисних варіантів. Його також не слід використовувати для тем.

Тож якщо я використовую його в моїй темі function.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
Справжнє питання - чому ви хочете додати клас мобільних / настільних?
TheDeadMedic

1
Те, що говорить @TheDeadMedic, відповідає дійсності, наприклад, ви можете працювати з запитами в засобах масової інформації CSS .
Миколай

1
wp_is_mobile()це не що інше, як жарт насправді і справді ненадійний. Він покладається на сторону користувача, якою може керувати кінцевий користувач. Потрібно знати, що ваша функціональність вийде з ладу більш ніж у 10% випадків, тому велика кількість користувачів мобільних пристроїв буде вимита вмістом настільних комп'ютерів, подобається чи ні, чи не хочете ви цього
Пітер Гусен

4
Отже, він є і смокче так само, як query_posts ();
Деджо Декіч

Відповіді:


31

Дуже непрофесійний термін wp_is_mobile()не для стилізації вашої теми.

Як це працює: воно відповідає деякому рідному імені пристрою в рядку User Agent. Тож якщо хтось маніпулює рядком і надсилає неправдиву інформацію, ви не можете виявити, що це за пристрій. І він не повертає жодного імені пристрою, він просто повертається, 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']містить мобільний (Android або BlackBerry тощо),

потім wp_is_mobilereturn - true (виявляється як мобільний пристрій), якщо ні, то він повернетьсяfalse

простий випадок використання - щоб встановити посилання, спробуйте перейти на мобільний додаток або веб-сторінку.

для отримання додаткової інформації перевірити вихідний код функції

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.