Wordpress wp_is_mobile()函数无效

时间:2013-12-05 17:55:08

标签: php wordpress jquery-mobile

我的Wordpress上有一个插件,我想在用户移动时阻止它。在我的functions.php中,我添加了一行:

if (wp_is_mobile())
{
    wp_dequeue_script('flare');
    wp_deregister_script('flare');
}

不幸的是,这使得脚本无法为移动和桌面用户加载。所以我需要想办法让这个脚本在移动时卸载。

我在我的后期模板中使用了类似的功能,如果它们在移动设备上,则在帖子的底部添加常规共享按钮 - 但这也无效。它为移动和桌面用户添加了共享按钮。

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:3)

试试这个......

if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Mobile') !== false
                    || strpos($_SERVER['HTTP_USER_AGENT'], 'Android') !== false
                    || strpos($_SERVER['HTTP_USER_AGENT'], 'Silk/') !== false
                    || strpos($_SERVER['HTTP_USER_AGENT'], 'Kindle') !== false
                    || strpos($_SERVER['HTTP_USER_AGENT'], 'BlackBerry') !== false
                    || strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mini') !== false
                    || strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mobi') !== false ) {
                    //Mobile browser do stuff here       
        } else {
                    //Do stuff here
            }

答案 1 :(得分:0)

你好,只是@jay bhatt 的补充,请检查你的functions.php 是否有过滤器

wp_is_mobile

代码可能看起来像

add_filter( 'wp_is_mobile', 'custom_detection_code', 99, 1 );

然后想想 Jay bhatt 的答案

答案 2 :(得分:-2)

我认为应将dequeuing次调用添加到wp_print_scripts操作挂钩。

脚本通常在wp_enqueue_script挂钩上排队,这在wp_head进程的早期发生。 wp_print_scripts挂钩发生在脚本打印之前。所以我认为你应该这样做:

function deque_my_scripts () {
    wp_dequeue_script('flare');
    wp_deregister_script('flare');
}

if (wp_is_mobile())
{
   add_action('wp_print_scripts','deque_my_scripts');
}

您还可以将动作挂钩添加到wp_enqueue_scripts

所以另一种方法是

if (wp_is_mobile())
{
   add_action('wp_enqueue_scripts','deque_my_scripts', 20);

}

希望这可以帮助你: - )