Uso adequado de wp_is_mobile ()?

15

Desenvolvi um tema responsivo e desejo enviá-lo ao wordpress.org . Antes de enviá-lo, quero usar wp_is_mobile() no meu tema, mas, de acordo com Referência de função / wp é móvel , é um má ideia porque diz isto:

Você deve perceber que isso não detecta especificamente um celular, já que um tablet é considerado um dispositivo móvel. Verifique a área Plugins para várias alternativas úteis. Ele 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;
}

O meu tema será rejeitado?

Subquestão:

Se eu usar minha função como no código acima e usar os plugins do Caching como (WP Super Cache), minha função vai ficar confusa (falha ao executar ou retornar falsos positivos)?

Obrigado pelo seu tempo e respostas ...

    
por Dejo Dekic 20.05.2015 / 16:27

2 respostas

30

Em um termo muito leigo, wp_is_mobile() não é para estilizar seu tema.

Como funciona: Ele corresponde a alguns dos nomes nativos do dispositivo na sequência do agente do usuário. Então, se alguém manipular a string e enviar informações falsas, você não poderá detectar qual dispositivo é. E ele não retorna nenhum nome de dispositivo, apenas retorna true se você não está na área de trabalho mais false

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

Efeito do armazenamento em cache : Se você usar o plugin de cache, será inútil. Como seu código não é executado toda vez, você obtém sempre o mesmo resultado.

O WordPress usa-o principalmente no back-end e quase todos os plugins de caching excluem o cache no back-end ou digamos para o usuário logado. Então funciona bem.

    
por Sumit 20.05.2015 / 18:31
1

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

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

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

, em seguida, wp_is_mobile returns - true (detectado como um dispositivo móvel), se não, ele retornará false

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

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

    
por bhv 24.10.2017 / 09:04