워드프레스 모바일 기기 감지 함수 - wp_is_mobile()
wp_is_mobile() 함수는 사용자가 모바일 기기를 사용하여 방문하고 있는지를 체크하는 Boolean 함수입니다(TRUE 또는 FALSE 반환). 즉, 현재 브라우저가 모바일 기기(스마트폰, 태블릿 등)에서 실행되고 있는지를 테스트합니다. 브라우저의 사용자 에이전트 문자열($_SERVER['HTTP_USER_AGENT'])을 감지하여 작동합니다. 이 함수에는 파라미터가 사용되지 않습니다.
사용 예시:
<?php if ( wp_is_mobile() ) { /* 모바일 장치용 코드 */ } ?>
모바일 장치에 대해서는 주로 CSS 미디어 쿼리를 사용하여 제어해 왔는데, 이 함수를 사용한다면 모바일 장치에 더 잘 대응할 수 있을 것 같습니다.
이 글에 나와 있는 코드를 이용해보시기 바랍니다.
참고로 어떤 글에서는 wp_is_mobile 함수를 사용하지 않는 것이 좋다고 나와 있네요. 가급적또는, Mobile Detect라는 플러그인을 설치할 수 있습니다. 이 플러그인은 오픈 소스 MobileDetect PHP 라이브러리를 사용하여 내장 워드프레스 wp_is_mobile() 함수가 태블릿을 모바일 기기로 감지되지 않도록 버그를 수정합니다(참고).
모바일 장치용 코드 부분에
function custom_excerpt_length( $length ) {
return 100;
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
이 코드를 넣은 후 함수 파일 저장을 하면 저장이 안되네요.
wp_is_mobile() 함수는 그냥 개인 취미용 블로그 정도의 사이트라면 사용해도 됩니다. (상업용 사이트라면 사용하지 말아야 하구요.) 사용하지 말라고 하는 이유는 정확도가 떨어지기 때문인데, 그누보드의 모바일 UA detect 함수 보다는 훨씬 더 정확합니다. ㅋㅋㅋㅋ
다음 사이트에 공개된 PHP 스크립트는 어떨까요?
https://github.com/serbanghita/Mobile-Detect
예전에 이 코드를 사용한 적이 있는데, 모바일 기기를 비교적 잘 감지하는 것 같았습니다.
어떤 UA 를 detect 하더라도 100% 정확할 수 는 없습니다. 제조사들 스펙이 항상 바뀌고 변경되고 그러거든요.
그렇지만 다른 글에 질문하신 분 처럼 모바일인 경우를 찝어내는건 100% 확실하게 할 수 있는 방법이 존재합니다.
if (/Mobi/.test(navigator.userAgent)) {
// 모바일이네? ㅋㅋㅋ
}
https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent
사실 저분 같은 경우, UA 를 찝어낼 이유가 전혀 없습니다. (css 만 할줄 알면 해결 되는 상황이거든요.)
요즘 이메일로 질문하시는 분들이 급격히 늘어나서 저런 질문글에는 댓글달기가 싫어지네요. 쿨럭. ^^;;;
코프레스도 내년까지 잠수를 탈까 생각 중 입니다. ㅋㅋㅋ