Como Adicionar Classes de Navegador e SO do Usuário na Classe Body do WordPress

Ao desenvolver temas para WordPress, às vezes você pode precisar de informações sobre o navegador e o sistema operacional do usuário para modificar certos aspectos do seu design usando CSS ou jQuery. O WordPress é capaz de fazer isso por você. Neste artigo, mostraremos como adicionar classes de navegador e SO do usuário à classe body do WordPress.

Detectando a plataforma e o navegador do usuário no WordPress

Por padrão, o WordPress gera classes CSS para diferentes seções do seu site. Ele também fornece filtros, para que desenvolvedores de temas e plugins possam adicionar suas próprias classes. Você usará o filtro body_class para adicionar informações do navegador e do sistema operacional como classe CSS.

A primeira coisa que você precisa fazer é adicionar o seguinte código ao arquivo functions.php do seu tema.

        function mv_browser_body_class($classes) {
                global $is_lynx, $is_gecko, $is_IE, $is_opera, $is_NS4, $is_safari, $is_chrome, $is_iphone;
                if($is_lynx) $classes[] = 'lynx';
                elseif($is_gecko) $classes[] = 'gecko';
                elseif($is_opera) $classes[] = 'opera';
                elseif($is_NS4) $classes[] = 'ns4';
                elseif($is_safari) $classes[] = 'safari';
                elseif($is_chrome) $classes[] = 'chrome';
                elseif($is_IE) {
                        $classes[] = 'ie';
                        if(preg_match('/MSIE ([0-9]+)([a-zA-Z0-9.]+)/', $_SERVER['HTTP_USER_AGENT'], $browser_version))
                        $classes[] = 'ie'.$browser_version[1];
                } else $classes[] = 'unknown';
                if($is_iphone) $classes[] = 'iphone';
                if ( stristr( $_SERVER['HTTP_USER_AGENT'],"mac") ) {
                         $classes[] = 'osx';
                   } elseif ( stristr( $_SERVER['HTTP_USER_AGENT'],"linux") ) {
                         $classes[] = 'linux';
                   } elseif ( stristr( $_SERVER['HTTP_USER_AGENT'],"windows") ) {
                         $classes[] = 'windows';
                   }
                return $classes;
        }
        add_filter('body_class','mv_browser_body_class');

A primeira parte deste script detecta o navegador do usuário e o adiciona a $classes. A segunda parte detecta o sistema operacional do usuário e também o adiciona a $classes. A última linha usa o filtro body_class do WordPress para adicionar as classes.

Agora você precisa adicionar a classe body à tag HTML <body> no arquivo header.php do seu tema. Substitua a linha do body no seu arquivo de template por este código:

<body <?php body_class(); ?>>

Observe que, se você estiver trabalhando com um tema inicial como underscores ou frameworks de tema bem codificados como Genesis, seu tema já terá a função body class na tag body. Assim que o código for implementado, você poderá ver as classes do navegador e do sistema operacional com a tag body no código-fonte HTML. Você também notará que outras classes serão adicionadas à tag body pelo WordPress.

Adicionando informações de navegador e SO na classe body do WordPress

Agora você pode estilizar as classes para diferentes navegadores e sistemas operacionais ou usá-las como seletores em jQuery. Esperamos que este artigo tenha ajudado você a detectar informações do navegador e do sistema operacional do usuário no WordPress.

Se você está apenas começando com o desenvolvimento de temas WordPress, talvez queira dar uma olhada em nossa introdução ao Sass e WordPress Body Class 101 para novos designers de temas. Deixe-nos saber se você tem algum feedback ou dúvida, deixando um comentário abaixo.

Fonte: Justin Sternberg

Aviso: Nosso conteúdo é apoiado pelos leitores. Isso significa que, se você clicar em alguns de nossos links, poderemos ganhar uma comissão. Veja como o WPBeginner é financiado, por que isso importa e como você pode nos apoiar. Aqui está nosso processo editorial.

O Kit de Ferramentas Definitivo para WordPress

Obtenha acesso GRATUITO ao nosso kit de ferramentas - uma coleção de produtos e recursos relacionados ao WordPress que todo profissional deve ter!

Interações do Leitor

11 CommentsLeave a Reply

    • Se você tiver um complemento de segurança ou CDN, ele pode estar enviando essas informações para o navegador em vez das informações corretas.

      Admin

  1. Hi.. I’ve been a fan of this website for almost 3 years.. by the way any update on this function for edge browser? thanks :)

    Mais poder!!!

  2. Esta é uma maneira maravilhosa de ajustar o estilo para navegadores individuais. O único grande inconveniente é que pode sair pela culatra quando usado com alguns plugins/sistemas de cache. Você acabará aplicando estilos destinados a um navegador a todos os navegadores porque a tag body será armazenada em cache, assim como o restante do conteúdo da página.

Deixe uma resposta

Obrigado por escolher deixar um comentário. Por favor, tenha em mente que todos os comentários são moderados de acordo com nossa política de comentários, e seu endereço de e-mail NÃO será publicado. Por favor, NÃO use palavras-chave no campo do nome. Vamos ter uma conversa pessoal e significativa.