Wykrywanie typu przeglądarki w Wordpresie

.

Czasem zachodzi potrzeba rozpoznania, z jakiego klienta zostało wysłane zapytanie do serwera. Standardowo informacje te są przechowywane w zmiennej globalnej PHP o nazwie $_SERVER. WordPress, po wprowadzeniu kilka dodatkowych modyfikacji w oparciu o łańcuch znaków $_SERVER['HTTP_USER_AGENT'], udostępnia szereg zmiennych, dzięki którym możliwe jest bardziej precyzyjne określeniu typu przeglądarki.

Zmienne odnoszące się do typu przeglądarki w standardowej instalacji Wordpresa to:

$is_lynx
$is_gecko
$is_winIE
$is_macIE
$is_IE
$is_opera
$is_NS4
$is_safari
$is_chrome
$is_iphone

Zmienne te przyjmują wartość true lub false. Jeżeli więc zapytanie zostało wysłane z klienta Opera, $is_opera przyjmie wartość true, pozostałym zostanie przyporządkowana natomiast wartość false.

W kodzie wyżej nadmienione zmienne można wykorzystać jak następuje:


function example_function(){
  global $is_IE
  if($is_IE){
    // tu kod dla Internet Explorera
  }else{
    // tu kod dla pozostałych przeglądarek
  }
}

Wykrywanie wersji Interenet Explorera

Zmiene ustawiane przez Wordpresa nie dają możliwości określenia, z którą wersją IE mamy do czynienia.
Aby to sprawdzić, konieczne jest dodatkowe kilka linijek kodu:


function is_ie() {
  $agent = $_SERVER['HTTP_USER_AGENT'];
  $reg = array();
  preg_match('@MSIE ([0-9]\.[0-9])@',$agent,$reg);
  return (isset($reg[1]) and intval($reg[1]) ? $reg[1] : false;
}

Funkcja zwraca wersję Internet Explorera lub false w przypadku braku danych o niej w nagłówku HTTP_USER_AGENT.

Jeżeli chcemy sprawdzić czy mamy do czynienia z wersją Internet Explorera niższą niż wymagana, możemy to zrobić jak następuje:


function is_ie_lesser_than($min_version = 9) {
  $agent = $_SERVER['HTTP_USER_AGENT'];
  $reg = array();
  preg_match('@MSIE ([0-9]\.[0-9])@',$agent,$reg);
  return (isset($reg[1]) and intval($reg[1]) < $min_version);
}

Zmienne, o których mowa w tym wpisie, można znaleźć w pliku wp-includes/vars.php instalacji Wordpresa.


Komentarze ( 2 )


Tylko to nie zawsze jest skuteczne, gdyż można zmienić user agent


Zgadza się, miałem jednak na myśli standardowe przypadki gdy zapytanie jest wykonywane za pośrednictwem przeglądarki. Niestandardowe przypadki wymagają niestandardowego traktowania ...


Twój komentarz





Niektóre tagi XHTML są dozwolone
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>