【问题标题】:Wordpress wp_is_mobile() function not workingWordpress wp_is_mobile()功能不起作用
【发布时间】:2013-12-05 17:55:07
【问题描述】:

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

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

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

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

任何帮助将不胜感激!

【问题讨论】:

  • 也许您正在使用缓存系统(例如 WP Total Cache);您从桌面浏览了页面(页面已缓存),然后您使用设备模拟器(Chrome Inspector)浏览了同一页面,但您看到了相同的结果。如果您已登录,事情可能会更加复杂,因为缓存系统通常会为已登录的用户禁用。

标签: php wordpress jquery-mobile


【解决方案1】:

试试这个...

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
            }

【讨论】:

  • 嗨@Jay Bhatt,您发布的代码与the code of the wp_is_mobile() function 非常相似;为什么你的代码应该更好地工作?到目前为止,您已收到 3 票,所以我想您是对的……我错过了什么?
【解决方案2】:

您好,除了 @jay bhatt 之外,请检查您的 functions.php 中的过滤器

wp_is_mobile

代码可能看起来像

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

然后想想 Jay bhatt 的答案

【讨论】:

    【解决方案3】:

    我认为应该将脚本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);
    
    }
    

    希望这对你有帮助:-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-13
      • 2018-03-10
      • 1970-01-01
      相关资源
      最近更新 更多