wp_is_mobile()
,但是根据Function Reference / wp是移动的,这是一个坏主意,因为它说的是这样的:具体而言,因为平板电脑被视为移动设备。查看“插件”区域,找到几种有用的替代方法。也不应将其用于主题。 所以,如果我在主题function.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)这样的缓存插件,我的函数将被搞砸(无法执行或返回误报) )?
感谢您的时间和答案...
#1 楼
用通俗易懂的术语来说,wp_is_mobile()
并不是用来设置主题的样式。因此,如果有人操纵该字符串并发送错误信息,则无法检测到它是什么设备。它不返回任何设备名称,如果您不在台式机上,则返回
true
。WordPress如何使用它:
WordPress不会在任何地方使用它进行样式设置或添加CSS。
WordPress使用它来添加或操作只能在移动设备上使用的内容(无论大小和名称如何)。添加触摸脚本,添加视口,在admin标头中添加移动类,添加移动按钮。
缓存的效果:
如果使用缓存插件,它是无用的。由于您的代码不会每次都执行,因此每次都会得到相同的结果。
WordPress大多在后端使用它,几乎每个缓存插件都排除了在后台缓存或对已登录用户说。这样就可以了。
#2 楼
wp_is_mobile()
根据HTTP USER AGENT
检测到设备(与屏幕尺寸无关)wp_is_mobile
根据$_SERVER['HTTP_USER_AGENT']
返回true或false 如果
$_SERVER['HTTP_USER_AGENT']
包含Mobile(Android,IOS ...),则返回true
否则返回false
有关更多信息,请检查功能源代码
评论
他们说,我们有此功能,但不要使用,因为它不好-多么具有讽刺意味。我不知道您的主题是否会因使用它而被拒绝,但是如果是这样,那么它将使讽刺性达到最大。毕竟这是WP函数,不建议使用。真正的问题是为什么要添加移动/桌面类?
@TheDeadMedic说的是正确的,例如,您可以使用CSS媒体查询。
wp_is_mobile()真的只是个玩笑,而且确实不可靠。它依赖于可以由最终用户操纵的用户方。您需要知道,在超过10%的情况下,您的功能将失败,因此无论他们是否喜欢或不愿意,大量移动用户都会受到桌面内容的陶醉。
因此它就在那里并且很烂,就像query_posts();