Wp_is_mobile()的正确用法?

时间:2015-05-20 作者:Dejo Dekic

我已经开发了响应主题,我想把它提交给wordpress。组织。在提交之前,我想使用wp_is_mobile() 在我的主题中,但根据 Function Reference/wp is mobile 这是个坏主意,因为上面说:

您应该意识到,这并不能专门检测移动电话,因为平板电脑被视为移动设备。检查插件区域以获得一些有用的替代方案 它也不应用于主题

如果我在主题函数中使用它。php如下所示:

add_filter(\'body_class\',\'mobile_theme_body_class\');     
function mobile_theme_body_class( $classes ){

    if ( wp_is_mobile() ){
        $classes[] = \'mobile\';
    }
    else{
        $classes[] = \'desktop\';
    }
    return $classes;
}
我的主题会被拒绝吗

子问题:

如果我像上面的代码那样使用我的函数,并且像(WP Super Cache)那样使用缓存插件,我的函数是否会出错(执行失败或返回误报)?

感谢您的时间和回答。。。

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

用非常通俗的话来说wp_is_mobile() 不用于设置主题样式。

How it works:它匹配用户代理字符串中设备的一些本机名称。因此,如果有人操纵字符串并发送错误信息,则无法检测到它是什么设备。它不返回任何设备名称,只返回true 如果您在桌面上,则不在其他桌面上false

How WordPress use it:WordPress不使用它在任何地方设置样式或添加CSS。WordPress使用它来添加或操作应该只在移动设备上的东西(无论大小和名称)e、 g.要添加触摸脚本,请在admin标题中添加viewport、mobile类,添加mobile按钮。

Effect of caching:如果你使用缓存插件,它是无用的。由于代码不是每次都执行,所以每次都会得到相同的结果。

WordPress主要在后端使用它,几乎每个缓存插件都不包括后端的缓存,也不包括登录用户的缓存。所以它工作得很好。

SO网友:bhv

wp_is_mobile() 根据检测设备HTTP_USER_AGENT (与屏幕大小无关)

wp_is_mobile 根据返回true或false$_SERVER[\'HTTP_USER_AGENT\']

如果$_SERVER[\'HTTP_USER_AGENT\'] 包含移动设备(Android、IOS…)或平板电脑的回报true else返回false
如果$_SERVER[\'HTTP_USER_AGENT\'] 返回为空false

对于more info 检查函数源代码

结束

相关推荐

WP Mobile Edition和CloudFare的子域

Im使用WPMobile Edition 和CloudFare. 我添加了子域m.mysite。com,并将其指向我的托管IP。但当访问m.mysite时。com,它将显示默认网页/cgi sys/defaultwebpage。cgi。访问http://m.mysite.com/msitemap.xml 将返回404页。如何在CloudFare中为WP Mobile Edition添加子域?谢谢