wp_is_mobile ()의 올바른 사용법?


18

반응 형 테마를 개발했으며 wordpress.org 를 제출하고 싶습니다 . 제출하기 전에 wp_is_mobile()테마에서 사용하고 싶지만 Function Reference / wp 에 따르면 모바일 은 이것이 나쁘기 때문에 나쁜 생각입니다 .

태블릿은 모바일 장치로 간주되므로 휴대폰을 구체적으로 감지하지 못한다는 것을 알아야합니다. 플러그인 영역에서 몇 가지 유용한 대안을 확인하십시오. 또한 테마에 사용해서는 안됩니다.

그래서 내 테마 functions.php에서 이것을 사용하면 :

add_filter('body_class','mobile_theme_body_class');     
function mobile_theme_body_class( $classes ){

    if ( wp_is_mobile() ){
        $classes[] = 'mobile';
    }
    else{
        $classes[] = 'desktop';
    }
    return $classes;
}

내 테마가 거부됩니까?

하위 질문 :

위 코드에서와 같이 내 함수를 사용하고 (WP Super Cache)와 같은 캐싱 플러그인을 사용하면 내 함수가 엉망이됩니까?

시간과 답변 주셔서 감사합니다 ...


1
그들은 우리 가이 기능을 가지고 있다고 말하고 있지만 사용하지 마십시오. 매우 아이러니합니다. 나는 당신의 테마가 그것을 사용하여 거부했는지 알지 못하지만, 그렇다면 아이러니를 최대로 늘릴 것입니다. 결국 그것은 WP 함수이며 더 이상 사용되지 않습니다.
Nicolai

3
실제 질문은 모바일 / 데스크톱 클래스를 추가하고 싶습니까?
TheDeadMedic

1
@TheDeadMedic의 말이 사실이라면 CSS 미디어 쿼리 로 작업 할 수 있습니다 .
Nicolai

1
wp_is_mobile()농담에 지나지 않으며 실제로 신뢰할 수 없습니다. 최종 사용자가 조작 할 수있는 사용자 측에 의존합니다. 사례의 10 % 이상에서 기능이 실패한다는 사실을 알아야합니다. 따라서 많은 모바일 사용자는 자신이 원하든 원하지 않든 데스크탑 컨텐츠를 요리 할 수 ​​있습니다.
Pieter Goosen

4
따라서 거기에 있으며 query_posts ()와 마찬가지로 짜증납니다.
Dejo Dekic

답변:


31

매우 평신도의 용어 wp_is_mobile()는 테마를 스타일링하기위한 것이 아닙니다.

작동 방식 : User Agent String의 일부 장치 기본 이름과 일치합니다. 따라서 누군가가 문자열을 조작하고 잘못된 정보를 보내면 어떤 장치인지 감지 할 수 없습니다. 그리고 true데스크탑에 있지 않은 경우 반환 되는 장치 이름은 반환 하지 않습니다.false

WordPress에서 사용하는 방법 : WordPress는 스타일을 지정하거나 CSS를 추가하는 데 사용하지 않습니다. WordPress에서는 크기와 이름에 관계없이 모바일 장치에만 있어야하는 것을 추가하거나 조작하는 데 사용합니다 (예 : 터치 스크립트 추가, 뷰포트 추가, 관리자 헤더에 모바일 클래스 추가, 모바일 버튼 추가).

캐싱 효과 : 캐싱 플러그인을 사용하면 쓸모가 없습니다. 코드가 매번 실행되지 않으므로 매번 동일한 결과를 얻습니다.

WordPress는 주로 백엔드에서 사용하며 거의 모든 캐싱 플러그인은 백엔드에서 캐싱을 제외하거나 로그인 한 사용자를 말합니다. 그래서 잘 작동합니다.


1

wp_is_mobile()관련이 HTTP USER AGENT, 그것은 화면 크기와 관련이없는 것

wp_is_mobile 에 따라 true 또는 false를 반환 $_SERVER['HTTP_USER_AGENT']

경우는 $_SERVER['HTTP_USER_AGENT']모바일 (등등 안드로이드 나 블랙 베리 또는 ..) 포함

그런 다음 wp_is_mobile-true (모바일 장치로 감지)를 반환합니다.false

간단한 사용 사례-링크를 만들려면 모바일 앱 또는 웹 페이지로 이동하십시오.

에 대한 더 많은 정보를 체크 기능 소스 코드

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.