¿Uso correcto de wp_is_mobile()?
He desarrollado un tema responsive y quiero enviarlo a wordpress.org. Antes de enviarlo quiero usar wp_is_mobile()
en mi tema, pero según la Referencia de Función/wp is mobile es una mala idea porque dice esto:
Debes tener en cuenta que esto no detecta específicamente un teléfono móvil, ya que una tablet es considerada un dispositivo móvil. Revisa el área de Plugins para varias alternativas útiles. Además, no debería usarse para temas.
Entonces si lo uso en mi functions.php del tema de esta manera:
add_filter('body_class','mobile_theme_body_class');
function mobile_theme_body_class( $classes ){
if ( wp_is_mobile() ){
$classes[] = 'mobile'; // agrega clase mobile
}
else{
$classes[] = 'desktop'; // agrega clase desktop
}
return $classes;
}
¿Mi tema será rechazado?
Sub-pregunta:
Si uso mi función como en el código anterior y uso Plugins de Caché como (WP Super Cache), ¿mi función se verá afectada (fallará en ejecutarse o devolverá falsos positivos)?
Gracias por su tiempo y respuestas...

En términos muy simples, wp_is_mobile()
no es para estilizar tu tema.
Cómo funciona:
Compara algunos de los nombres nativos de dispositivos en la cadena del Agente de Usuario (User Agent String). Por lo tanto, si alguien manipula la cadena y envía información falsa, no podrás detectar qué dispositivo es.
Y no devuelve ningún nombre de dispositivo, solo devuelve true
si no estás en un escritorio, de lo contrario devuelve false
.
Cómo lo usa WordPress: WordPress no lo usa para estilizar o agregar CSS en ningún lugar. WordPress lo usa para agregar o manipular cosas que deberían estar solo en dispositivos móviles (independientemente del tamaño y nombre). Por ejemplo, para agregar scripts de pantalla táctil, agregar viewport, clase móvil en el encabezado del administrador, agregar botones móviles.
Efecto del almacenamiento en caché: Si usas un plugin de caché, es inútil. Como tu código no se ejecuta cada vez, obtendrás el mismo resultado todo el tiempo.
WordPress principalmente lo usa en el back-end y casi todos los plugins de caché excluyen el almacenamiento en caché en el back-end o para usuarios con sesión iniciada. Así que funciona bien.

wp_is_mobile()
detecta el dispositivo basándose en HTTP_USER_AGENT
(no está relacionado con el tamaño de pantalla)
wp_is_mobile
devuelve verdadero o falso basado en $_SERVER['HTTP_USER_AGENT']
Si $_SERVER['HTTP_USER_AGENT']
contiene Mobile (Android, iOS...) o Tablet, devuelve true
, de lo contrario devuelve false
Si $_SERVER['HTTP_USER_AGENT']
es nulo, devuelve false
Para más información revisa el código fuente de la función
