Podczas tworzenia motywów WordPress czasami możesz potrzebować informacji o przeglądarce i systemie operacyjnym użytkownika, aby zmodyfikować niektóre aspekty twojego projektu za pomocą CSS lub jQuery. WordPress jest w stanie zrobić to za Ciebie. W tym artykule pokażemy, jak dodać przeglądarkę użytkownika i klasy systemu operacyjnego w klasie ciała WordPress.
Domyślnie WordPress generuje klasy CSS dla różnych sekcji twojej witryny internetowej. Zapewnia również filtry, dzięki którym twórcy motywów i wtyczek mogą podpinać własne klasy. Będziesz używał filtra body_class
, aby dodać informacje o przeglądarce i systemie operacyjnym jako klasę CSS.
Pierwszą rzeczą, którą musisz zrobić, to dodać następujący kod do pliku functions. php twojego motywu.
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');
.
Pierwsza część tego skryptu wykrywa przeglądarkę użytkownika i dodaje ją do $classes
. Druga część wykrywa system operacyjny użytkownika i dodaje go również do $classes
. Ostatnia linia wykorzystuje filtr WordPress body_class
do dodawania klas.
Teraz musisz dodać klasę body do tagu <body>
HTML w pliku header.
php twojego motywu. Zastąp linię body w twoim pliku szablonu tym kodem:
<body <?php body_class(); ?>>
.
Zauważ, że jeśli pracujesz z motywem startowym, takim jak underscores lub dobrze zakodowanym frameworkiem motywu, takim jak Genesis, to twój motyw będzie już posiadał funkcję klasy body w tagu body. Po zaimplementowaniu kodu będziesz mógł zobaczyć klasy przeglądarki i systemu operacyjnego z tagiem body w źródle HTML. Zauważysz również, że będą inne klasy dodane do tagu body przez WordPress.
Teraz możesz stylizować klasy dla różnych przeglądarek i systemów operacyjnych lub używać ich jako selektorów w jQuery. Mamy nadzieję, że ten artykuł pomógł ci wykryć informacje o przeglądarce i systemie operacyjnym użytkownika w WordPress.
Jeśli dopiero zaczynasz przygodę z tworzeniem motywów WordPress, możesz również zapoznać się z naszym wprowadzeniem do Sass i WordPress Body Class 101 dla nowych projektantów motywów. Daj nam znać, jeśli masz jakieś uwagi lub pytania, zostawiając komentarz poniżej.
Źródło: Justin Sternberg
Syed Balkhi
Hey WPBeginner readers,
Did you know you can win exciting prizes by commenting on WPBeginner?
Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
You can get more details about the contest from here.
Start sharing your thoughts below to stand a chance to win!
Adam
What if the user is using Edge? The IE replacement browser.
WPBeginner Support
This is an older article but for Edge, it is: is_edge following the above formatting
Administrator
Adam
Easy enough. Thanks!
Mel
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
More power!!!
WPBeginner Support
Hi Mel,
You can add
$is_edge
to the code to detect Microsoft Edge.Administrator
Daniel Geiser
Is there a possibility to detect Edge?
Rehan
This is what i want exacly… thank you so much…
best ever
Bill Robbins
This is a wonderful way to tweak styling for individual browsers. The only major drawback is it can backfire when used with some caching plugins/systems. You’ll end up applying styles intended for one browser to all browsers because the body tag will be cached just like the rest of the content on the page.
WPBeginner Support
Bill, Good point. We are looking for an alternative solution and will update the article soon. Thanks for pointing this out.
Administrator