Estoy experimentando un problema muy molesto. Construí mi sitio web con consultas de medios e is_mobile (pensar que is_mobile sería lo mismo que pantallas más pequeñas. Qué tonto de mi parte), pero después de algunas pruebas aparentemente el iPad lo arruinó (está bien, en realidad lo hice).
Todos mis problemas podrían resolverse fácilmente si pudiera excluir un iPad de la función wp_is_mobile. ¿Cómo reescribo esa función?
function wp_is_mobile() {
static $is_mobile;
if ( isset($is_mobile) )
return $is_mobile;
if ( empty($_SERVER['HTTP_USER_AGENT']) ) {
$is_mobile = false;
} elseif ( strpos($_SERVER['HTTP_USER_AGENT'], 'Mobile') !== false // many mobile devices (all iPhone, iPad, etc.)
|| strpos($_SERVER['HTTP_USER_AGENT'], 'Android') !== false
|| strpos($_SERVER['HTTP_USER_AGENT'], 'Silk/') !== false
|| strpos($_SERVER['HTTP_USER_AGENT'], 'Kindle') !== false
|| strpos($_SERVER['HTTP_USER_AGENT'], 'BlackBerry') !== false
|| strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mini') !== false ) {
$is_mobile = true;
} else {
$is_mobile = false;
}
return $is_mobile;
}
¿Cómo cambiaría esto?
===
mientras debería haberlo verificado!==
, no tengo idea de cómo sucedió eso, pero ahora lo arreglé. Por lo tanto, la respuesta anterior también debería funcionar, ¡lo cual no digo para que lo aceptes! Es solo que, en esencia, nuestras respuestas / funciones hacen lo mismo, así que solo quería encontrar (y arreglar) lo que estaba mal.También puede usar la clase PHP Mobile Detect actualizada regularmente para crear una función personalizada para detectar móviles que excluyan tabletas (por lo tanto, iPads). Al momento de escribir esta respuesta, el repositorio de Github se había actualizado recientemente para incluir la detección de nuevas tabletas Samsung a partir de hace 3 meses.
Suponiendo que coloque el archivo requerido en el directorio llamado
/includes/
en su tema, puede agregar este código a sus functions.phpluego use la función
md_is_mobile()
como sustituto dewp_is_mobile()
.fuente
Sé que esto es antiguo, pero quería actualizarlo con la forma correcta de WordPress de implementar las soluciones anteriores. A partir de la versión 4.9.0, en lugar de implementar otra función, deberían filtrar el resultado de wp_is_mobile (). Así:
SIN EMBARGO, lo que realmente debería haberse hecho fue morder la bala y reescribir el tema para que funcione correctamente en tabletas. Hubo / hay más fabricantes de tabletas que Apple.
fuente
He reescrito (y, en mi opinión, optimizado) un poco tu función:// EDITAR:
Vale, una vez más ...
Escriba una nueva función que use internamente la función central y extiéndala :
Ahora puede usar su nueva
my_wp_is_mobile
función en cualquier lugar que desee.fuente
functions.php
archivo. Actualizaré mi respuesta en un minuto ...wp_is_mobile
... Entonces, ¿qué no funciona (como le gustaría hacer)?if(!my_wp_is_mobile() )
la barra lateral, todavía no se muestra. De lo cual deduzco que la función no funciona.