e,mUP P AQ,mUP` u`L,mU` <5,mU ` !,mU:$m  R5,mU0 !,mU:$m  R5,mU@ !,mUlU!,mUlUp!,mU`lUPBa,mU`@0=Q,mUPuFG,mU 5,mU 2,mU /1,mU0 y>,mU 0 EC,mU0 `0 ..,mU `@ sC,mU@ 0 4C,mU0  4g\,mU +P1,mUP g\,mUP +!,mUE.m` 8R]C,mU` p 9C,mUp p /!,mUc#mp PR5,mU@ C,mU p 4g\,mUp +0,mU Qg\,mU +Ba,mU`h=Q,mUPub,mUBa,mU`p=!,mUa$mp xRe,mU PAb,mUa:,mU  D S,mU PtBa,mU=US,mUPA`L,mU <&J,mU `20n,mU< =,mU >F,mU*Ba,mU`P=Q,mUPub,mUa:,mU D S,mUPtBa,mU`=Q,mUPuFG,mU0 &J,mU0 `20n,mU< =,mU >F,mU*Ba,mU` "=Q,mUP"uFG,mUP "5,mUP "u,mU #+Ba,mU`$=Q,mUP$ub,mU$a:,mU@ %D S,mU@P%tQ,mU`%B0n,mU%< =,mU %>Ba,mUp(=Q,mUP(uUS,mU`(AFG,mU (&,mU p (g\,mU (+Ba,mU`@)=Q,mUP)ub,mU)a:,mU *D S,mUP*tBa,mU*=US,mUP*A`L,mU *<&J,mU `*20n,mU*< =,mU *>Ba,mU`@.=Q,mUP.ub,mU.0,mU 0Qg\,mU 0+Ba,mU`1=!,mU& 1Re,mU P1Ab,mU10,mU `@ 5Q>,mU@ PP 5G5<,mU@PP 5H0,mU @` 7Q>,mU` 0P 7H0,mU  p 8Q>,mUp P 8H0,mU 9Q>,mU P 9H5,mUPP 4e<,mU=qQ,mUPP=uQ,mU`=uQ,mUPp=u`L,mU =<5,mU` =N,mU` >{g\,mU @>+42,mU`?>0,mU BQe,mU B{EC,mU  B.e<,mU(Cqh,mUCdpache or something else. * * @global bool $is_apache */ $is_apache = ( str_contains( $_SERVER['SERVER_SOFTWARE'], 'Apache' ) || str_contains( $_SERVER['SERVER_SOFTWARE'], 'LiteSpeed' ) ); /** * Whether the server software is Nginx or something else. * * @global bool $is_nginx */ $is_nginx = ( str_contains( $_SERVER['SERVER_SOFTWARE'], 'nginx' ) ); /** * Whether the server software is Caddy / FrankenPHP or something else. * * @global bool $is_caddy */ $is_caddy = ( str_contains( $_SERVER['SERVER_SOFTWARE'], 'Caddy' ) || str_contains( $_SERVER['SERVER_SOFTWARE'], 'FrankenPHP' ) ); /** * Whether the server software is IIS or something else. * * @global bool $is_IIS */ $is_IIS = ! $is_apache && ( str_contains( $_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS' ) || str_contains( $_SERVER['SERVER_SOFTWARE'], 'ExpressionDevServer' ) ); /** * Whether the server software is IIS 7.X or greater. * * @global bool $is_iis7 */ $is_iis7 = $is_IIS && (int) substr( $_SERVER['SERVER_SOFTWARE'], strpos( $_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS/' ) + 14 ) >= 7; /** * Test if the current browser runs on a mobile device (smart phone, tablet, etc.). * * @since 3.4.0 * @since 6.4.0 Added checking for the Sec-CH-UA-Mobile request header. * * @return bool */ function wp_is_mobile() { if ( isset( $_SERVER['HTTP_SEC_CH_UA_MOBILE'] ) ) { // This is the `Sec-CH-UA-Mobile` user agent client hint HTTP request header. // See . $is_mobile = ( '?1' === $_SERVER['HTTP_SEC_CH_UA_MOBILE'] ); } elseif ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) { $is_mobile = false; } elseif ( str_contains( $_SERVER['HTTP_USER_AGENT'], 'Mobile' ) // Many mobile devices (all iPhone, iPad, etc.) || str_contains( $_SERVER['HTTP_USER_AGENT'], 'Android' ) || str_contains( $_SERVER['HTTP_USER_AGENT'], 'Silk/' ) || str_contains( $_SERVER['HTTP_USER_AGENT'], 'Kindle' ) || str_contains( $_SERVER['HTTP_USER_AGENT'], 'BlackBerry' ) || str_contains( $_SERVER['HTTP_USER_AGENT'], 'Opera Mini' ) || str_contains( $_SERVER['HTTP_USER_AGENT'], 'Opera Mobi' ) ) { $is_mobile = true; } else { $is_mobile = false; } /** * Filters whether the request should be treated as coming from a mobile device or not. * * @since 4.9.0 * * @param bool $is_mobile Whether the request is from a mobile device or not. */ return apply_filters( 'wp_is_mobile', $is_mobile ); }