Is wp_is_mobile() effective?

时间:2013-08-26 作者:Andrea Puiatti

我将测试用户代理以加载移动模板而不是桌面主题。

有很多移动检测脚本。

确实如此wp_is_mobile() 功能正常吗mobiledetect.net?

4 个回复
最合适的回答,由SO网友:gmazzap 整理而成

是的,效果很好。这是一个非常简单的功能,但从未找到一个不被它识别的移动设备。它认可了90%以上的移动设备。与mobiledetect的主要区别。net与手机和平板电脑没有什么不同。

看见the code

SO网友:Dan Ștefancu

是的wp_is_mobile() 工作正常,但在使用主动缓存系统(如fastcgi、代理缓存等)跳过php执行时,可能会遇到问题。

如果是这样的话,我会推荐一些客户端(javascript)检测方法,它可以同时为移动浏览器和桌面浏览器加载。

SO网友:Mark Kaplun

使用该函数是一个糟糕的想法。设备识别应始终在客户端进行,而用户代理可能是识别设备是否支持功能X或具有形状因子Y的最差方法。

当网站还很年轻时,你就开始使用它,然后你的网站发展壮大,你决定缓存你的HTML,然后所有的设备检测代码都停止工作。。。。。最好不要一开始就放弃那个盟友。

SO网友:Gregory Bologna

您的问题特别询问wp_is_mobile() 有效;而不是如何评估设备检测。该功能正常工作。因此,是的,它是有效的。例如,当它可能优于客户端检测时,甚至Mozilla也认为这是个坏主意。

值得重复:使用用户代理嗅探很少是一个好主意。你几乎总能找到一种更好、更广泛、更具竞争力的方法来解决你的问题!mozilla

移动检测插件更好吗?有充分的理由不选择通过插件而不是wp\\u is\\u mobile()进行移动检测。首先,Wordpress已经在做很多tedius任务了,所以也把这个交给它吧!

加载a之前DataTable 我正在使用mobile-detect.js 作为我对设备移动时的检测和样式要求的一部分:

// if phone or tablet then set responsive mode
var md = new MobileDetect(window.navigator.userAgent);
if (md.phone() || md.tablet()) {
    scrollObj = false;
    $(\'#sometable\').removeAttr(\'width\').addClass(\'dt-responsive\');
    responsiveObj = {
        details: {
    type: "inline",
    display: $.fn.dataTable.Responsive.display.childRowImmediate
        }
    };
}
这很好,但每次会话函数调用都需要一个插件一次性使用,成本很低。此外,它的创建者警告不要使用他的插件。

"you should not use this library in your HTML page and it’s less reliable when used server-side"

因此,与加载一次性插件不同,在不进行嗅探的情况下处理设备检测的更有效方法是使用wp\\u is\\u mobile()。

// This is in a JavaScript block in a PHP page
isMobile = Boolean(<?php echo wp_is_mobile() ?>);

结束

相关推荐

login_redirect for Mobile Web

我的网站的移动版本位于mywebsite.com/mobile 还有一个登录表单wp-login.php. 目前,当用户从主页登录时,如果他们不是管理员,则会重定向到他们的Buddypress配置文件如果他们从主页登录,我希望保持此状态,但是,如果他们从mywebsite.com/mobile, 我希望他们被重定向到mywebsite.com/mobile/dash.//REDIRECT USERS TO ACTIVITY PAGE WHEN THEY LOGIN add_filter( \"lo