2011-04-12 6 views
3

Google의 API에서 워드 프레스를 통해 jquery를로드하는 PHP 섹션이 있습니다. IE 브라우저에서 jquery를로드하고 싶지 않습니다. 긴 이야기는 짧지 만 어떤 이유로 든 작동하지 않습니다 (다른 게시 된 질문을 읽을 수 있음).거기에 PHP를 넣을 수있는 방법이 있나요 조건부 코멘트

또는 이것이 가능하지 않은 경우 IE 브라우저, 어쩌면 PHP 솔루션 일 때이 코드를 사용하지 않는 또 다른 방법이 있습니다.

<?php 
    if(!is_admin()){ 
     wp_deregister_script('jquery'); 
     wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js', false, '1.5.2', true); 
     wp_enqueue_script('jquery'); 
    } 

?> 

대상에 (내가 사용하려고 있었는지, 그러나 didnt 한 일) IE를 제외한 모든 :

<!--[if !IE]><!--> 
<!--<![endif]--> 

답변

3

아니요. 대체 솔루션으로 PHP 블록에서 브라우저를 감지하고 싶을 것입니다.

$browser = get_browser(); 
if ($browser->browser == 'MSIE') { 
    if (!is_admin()) { 
     wp_deregister_script('jquery'); 
     wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js', false, '1.5.2', true); 
     wp_enqueue_script('jquery'); 
    } 
} 

또는 니콜라이 요르다 노프의 대답에서와 $is_IE 전역 변수를 사용하여 : : 같은 뭔가

if ($is_IE) { 
    if (!is_admin()) { 
     wp_deregister_script('jquery'); 
     wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js', false, '1.5.2', true); 
     wp_enqueue_script('jquery'); 
    } 
} 
+0

if ($ is_IE) {... stuff ...} else {... insert jquery stuff ...} 아니면 (! $ is_IE) {... insert jquery stuff ...이 경우 작동합니다. } –

+0

글쎄요, 오해가있었습니다. 변수를 글로벌 변수로 선언해야한다는 것을 알았습니다 : global $ is_IE; 다시 한 번 감사드립니다. –

4

당신은 워드 프레스의 글로벌 $ is_IE 있습니다.

+0

사실, 즉 조건 등이 아닌 조건부 주석 사용합니다. 또는 조건부 주석을 사용할 수 있지만 WordPress wp_register_script 호출 대신 스크립트 태그를 직접 작성해야합니다. – ajsutton

1

짧은 답변 : 아니오.

긴 답변 : IE 조건부 주석은 클라이언트 측이며 PHP는 서버 측이므로 작동하지 않습니다.

가능한 해결 방법 : http://php.net/manual/en/function.get-browser.php (또는 이미 게시 된 답변 중 하나에 따라가, 워드 프레스는 글로벌 달러 (A $) is_IE 제공)

관련 문제