Uso adecuado de wp_is_mobile ()?

18

He desarrollado un tema receptivo y quiero enviarlo a wordpress.org . Antes de enviarlo, quiero usarlo wp_is_mobile()en mi tema, pero según Function Reference / wp es móvil , es una mala idea porque dice esto:

Debe darse cuenta de que esto no detecta un teléfono móvil específicamente, ya que una tableta se considera un dispositivo móvil. Consulte el área de Complementos para ver varias alternativas útiles. Tampoco debe usarse para temas.

Entonces, si lo uso en mi tema functions.php así:

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;
}

¿Se rechazará mi tema?

Subpregunta:

Si uso mi función como en el código anterior y utilizo complementos de almacenamiento en caché como (WP Super Cache), ¿mi función se estropeará (no se pudo ejecutar o devolvió falsos positivos)?

Gracias por su tiempo y respuestas ...

Dejo Dekic
fuente
1
Dicen que tenemos esta función, pero no la use, porque no es buena, qué irónico. No sé si su tema sería rechazado por usarlo, pero si es así, aumentaría la ironía al máximo. Después de todo, es una función WP y no está en desuso.
Nicolai
3
La verdadera pregunta es ¿por qué desea agregar la clase móvil / de escritorio?
TheDeadMedic
1
Lo que dice @TheDeadMedic es cierto, por ejemplo , puede trabajar con consultas de medios CSS .
Nicolai
1
wp_is_mobile()no es más que una broma realmente y es realmente poco confiable. Se basa en el lado del usuario que puede ser manipulado por el usuario final. Debe saber que su funcionalidad fallará en más del 10% de los casos, por lo que una gran cantidad de usuarios móviles recibirán contenido de escritorio, les guste o no les guste o no
Pieter Goosen,
44
Entonces está ahí y apesta como query_posts ();
Dejo Dekic

Respuestas:

31

En términos muy simples, wp_is_mobile()no es para diseñar su tema.

Cómo funciona: coincide con algunos de los nombres nativos del dispositivo en User Agent String. Entonces, si alguien manipula la cadena y envía información falsa, no puede detectar qué dispositivo es. Y no devuelve ningún nombre de dispositivo, solo devuelve truesi no está en el escritorio.false

Cómo lo usa WordPress: WordPress no lo usa para diseñar o agregar CSS en ningún lugar. WordPress lo usa para agregar o manipular cosas que deberían estar solo en dispositivos móviles (sin importar el tamaño y el nombre), por ejemplo, para agregar scripts táctiles, agregar viewport, clase móvil en el encabezado de administrador, agregar botones móviles.

Efecto del almacenamiento en caché : si utiliza el complemento de almacenamiento en caché, es inútil. Como su código no se ejecuta cada vez, obtiene el mismo resultado cada vez.

WordPress lo usa principalmente en el back-end y casi todos los complementos de almacenamiento en caché excluyen el almacenamiento en caché en el back-end o, por ejemplo, para el usuario conectado. Entonces funciona bien.

Sumit
fuente
1

wp_is_mobile()está relacionado con HTTP USER AGENT, no está relacionado con el tamaño de la pantalla

wp_is_mobile devuelve verdadero o falso basado en $_SERVER['HTTP_USER_AGENT']

si $_SERVER['HTTP_USER_AGENT']contiene Mobile (Android o BlackBerry, etc.),

luego wp_is_mobileregresa - verdadero (detectado como un dispositivo móvil), si no, entonces regresaráfalse

un caso de uso simple: para hacer un enlace, intente navegar a la aplicación móvil o la página web.

para más información verifique el código fuente de la función

bhv
fuente