Estou experimentando um problema muito irritante. Eu construí meu site com consultas de mídia e is_mobile (pensar que is_mobile seria o mesmo que telas menores. Que tolice da minha parte.) Mas depois de alguns testes, aparentemente, o iPad meio que estraga tudo (ok, na verdade eu fiz).
Todos os meus problemas poderiam ser facilmente resolvidos se eu pudesse excluir um iPad da função wp_is_mobile. Como reescrevo essa função?
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;
}
Como eu mudaria isso?
===
enquanto deveria ter verificado!==
- não faço ideia de como isso aconteceu, mas agora resolvi isso. Então, a resposta acima deve funcionar tão bem - o que eu absolutamente me não dizendo para fazer você aceitá-lo! É que, em essência, nossas respostas / funções fazem o mesmo - então eu só queria encontrar (e consertar) o que estava errado.Você também pode usar a classe Mobile Detect PHP atualizada regularmente para criar uma função personalizada para detectar celulares, exceto tablets (portanto, iPads). No momento em que escrevemos essa resposta, o repositório do Github havia sido atualizado recentemente para incluir a detecção de novos tablets Samsung a partir de três meses atrás.
Supondo que você coloque o arquivo necessário no diretório chamado
/includes/
em seu tema, adicione esse código às suas funções.phpentão use a função
md_is_mobile()
como um substituto parawp_is_mobile()
.fonte
Eu sei que isso é antigo, mas eu queria atualizá-lo com a maneira correta do WordPress de implementar as soluções anteriores. A partir da versão 4.9.0, em vez de implementar outra função, eles deveriam filtrar o resultado de wp_is_mobile (). Portanto:
No entanto, o que realmente deveria ter sido feito era morder a bala e reescrever o tema para funcionar corretamente em tablets. Havia / há mais fabricantes de tablets que a Apple.
fonte
Reescrevi (e, na minha opinião, otimizei) sua função um pouco:// EDIT:
Ok, mais uma vez ...
Escreva uma nova função que use internamente a função principal e estenda -a:
Agora você pode usar sua nova
my_wp_is_mobile
função onde quiser.fonte
functions.php
arquivo. Eu vou atualizar a minha resposta em um minuto ...wp_is_mobile
...? Então, o que não funciona (como você gostaria de fazer)?if(!my_wp_is_mobile() )
a barra lateral, ainda não está sendo exibida. Da qual deduzo que a função não funciona.