3

我有一个 php 部分,它通过 google 的 api 通过 wordpress 加载 jquery。我不想在 IE 浏览器上加载 jquery。长话短说,无论出于何种原因,它都不起作用(您可以阅读我发布的其他问题)。

或者,如果这是不可能的,当它是一个 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');
    }

?>

针对除 IE 之外的所有内容(我试图使用,但它没有用):

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

3 回答 3

4

您在 Wordpress 中有全局 $is_IE。

于 2011-04-12T19:37:40.387 回答
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_IENikolay Yordanov 的回答中的全局变量:

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');
    }
}
于 2011-04-12T19:38:18.917 回答
1

简短的回答:没有。

长答案:IE 条件注释是客户端,而 PHP 是服务器端,所以它不起作用。

可能的解决方案:http : //php.net/manual/en/function.get-browser.php (或者根据已经发布的答案之一,wordpress 提供了一个 $is_IE 全局)

于 2011-04-12T19:40:21.193 回答