Uso adequado de wp_is_mobile ()?

18

Eu desenvolvi um tema responsivo e quero enviá-lo para o wordpress.org . Antes de enviá-lo, quero usá-lo wp_is_mobile()no meu tema, mas, de acordo com a Referência de Função / wp é móvel , é uma péssima ideia, pois diz o seguinte:

Você deve perceber que isso não detecta um telefone celular especificamente, pois um tablet é considerado um dispositivo móvel. Verifique a área de plug-ins para várias alternativas úteis. Também não deve ser usado para temas.

Então, se eu usá-lo no meu tema functions.php assim:

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

Meu tema será rejeitado?

Sub-pergunta:

Se eu usar minha função como no código acima e usar Caching Plugins como (WP Super Cache), minha função será confusa (falha na execução ou no retorno de falsos positivos)?

Obrigado pelo seu tempo e respostas ...

Dejo Dekic
fonte
11
Eles estão dizendo, nós temos essa função, mas não a usamos, porque não é boa - que ironia. Não sei se o seu tema foi rejeitado por usá-lo, mas, se sim, aumentaria a ironia ao máximo. Afinal, é uma função WP e não obsoleta.
Nicolai
3
A verdadeira questão é por que você deseja adicionar a classe móvel / desktop?
TheDeadMedic #
11
O que o @TheDeadMedic diz é verdade, você pode trabalhar com consultas de mídia CSS, por exemplo.
Nicolai
11
wp_is_mobile()nada mais é do que uma piada e não é realmente confiável. Ele se baseia no lado do usuário, que pode ser manipulado pelo usuário final. Você precisa saber que a sua funcionalidade irá falhar em mais de 10% dos casos, assim que uma grande quantidade de usuários móveis será o conteúdo do desktop abaulado ou não goste ou que você não quer que ele
Pieter Goosen
4
Então está lá e é péssimo como query_posts ();
Dejo Dekic

Respostas:

31

Em termos muito leigos, wp_is_mobile()não é para denominar seu tema.

Como funciona: corresponde a um nome nativo do dispositivo na sequência do agente do usuário. Portanto, se alguém manipular a string e enviar informações falsas, não será possível detectar qual dispositivo é. E ele não retorna nenhum nome de dispositivo, apenas retorna truese você não estiver na área de trabalhofalse

Como o WordPress usa: O WordPress não o usa para estilizar ou adicionar CSS em qualquer lugar. O WordPress usa-o para adicionar ou manipular coisas que devem estar apenas em dispositivos móveis (independentemente do tamanho e nome). Por exemplo, para adicionar scripts de toque, adicionar viewport, classe móvel no cabeçalho do administrador, adicionar botões móveis.

Efeito do cache : se você usar o plugin de cache, é inútil. Como seu código não é executado todas as vezes, você obtém o mesmo resultado todas as vezes.

O WordPress costuma usá-lo no back-end e quase todos os plug-ins de cache excluem o cache no back-end ou dizem para o usuário conectado. Então funciona bem.

Sumit
fonte
1

wp_is_mobile()está relacionado a HTTP USER AGENT, não está relacionado ao tamanho da tela

wp_is_mobile retornar verdadeiro ou falso com base em $_SERVER['HTTP_USER_AGENT']

se $_SERVER['HTTP_USER_AGENT']contiver dispositivos móveis (Android ou BlackBerry, etc.),

então wp_is_mobileretorna - verdadeiro (detectado como um dispositivo móvel); caso contrário, ele retornaráfalse

um caso de uso simples - para criar um link, tente navegar para o aplicativo móvel ou a página da Web.

para mais informações, verifique o código fonte da função

bhv
fonte