28 09 10 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.
Autor wpisu jest blogerem, programistą PHP, administratorem Linux oraz twórcą blogów
RSS Subskrybuj wpisy bloga