简体   繁体   English

w3c Mobile checker使用桌面版页面吗? (响应的WordPress网站)

[英]w3c Mobile checker Using desktop version of page? (responsive wordpress site)

I am using the following function in PHP to detect the user agent and display or hide revolution slider based on whether or not the useragent mobile. 我正在PHP中使用以下功能来检测用户代理,并根据用户代理是否移动来显示或隐藏旋转滑块。 The issue I am having is this: 我遇到的问题是这样的:

When I use the w3c mobile ok checker, it is still loading all of the assets including revolution slider, which properly hides on a real mobile device and shows properly in a desktop browser with respect to this code: 当我使用w3c移动ok检查器时,它仍在加载包括旋转滑块在内的所有资产,该滑块正确隐藏在真实的移动设备上,并且相对于以下代码在桌面浏览器中正确显示:

  // Only show slider on Desktop Home Page
  $is_mobile=userAgent('mobile');
  if (is_front_page() && !$is_mobile) {  
    putRevSlider("homepage","homepage"); 
  } 

My assumption is that w3c checker is either 我的假设是w3c检查器是

A) not using in the userAgent function or A)不使用userAgent函数或

B) It is simply pulling the desktop version and running the tests against it. B)只是拉动桌面版本并针对它运行测试。 For reference, here is the userAgent function that I am using: 作为参考,这是我正在使用的userAgent函数:

// Detect if Mobile User Agent
function userAgent($type = NULL) {
    $user_agent = strtolower($_SERVER['HTTP_USER_AGENT']);
    if ($type == 'mobile') {
        if (preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i', $useragent) || preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i', substr($useragent, 0, 4))) {
            return true;
        }
    }
    return false;
}

Which brings me to my question(s): 这使我想到了一个问题:

  1. How exactly does w3c handle the page request and is there a way to determine if the page is being requested via the w3c checker (or similar service) w3c如何精确地处理页面请求,并且有一种方法可以确定是否通过w3c检查器(或类似服务)来请求页面

  2. Is there a better way to prevent Revolution slider from loading on mobile devices (other than the settings in the slider, found that to not be 100% reliable) 有没有更好的方法可以防止Revolution滑块加载到移动设备上(滑块中的设置除外,发现它不是100%可靠的)

1. How exactly does w3c handle the page request and is there a way to determine if the page is being requested via the w3c checker (or similar service) 1. w3c如何精确地处理页面请求,有没有办法确定是否通过w3c检查器(或类似服务)请求页面

The preg_match in your code includes w3c. 您代码中的preg_match包含w3c。 Did you confirm whether the assets load anyway when you visit your site from a mobile device? 通过移动设备访问网站时,您是否确定资产是否仍在加载? Perhaps the assets aren't configured to load only when the slider is called. 也许资产没有配置为仅在调用滑块时加载。

2. Is there a better way to prevent Revolution slider from loading on mobile devices (other than the settings in the slider, found that to not be 100% reliable) 2.是否有更好的方法可以防止Revolution滑块加载到移动设备上(滑块中的设置除外,发现它不是100%可靠的)

Have you looked into wp_is_mobile() ? 您是否看过wp_is_mobile() You should be able to stop the slider from loading by checking whether wp_is_mobile() returns false for a user visiting from a non-mobile device. 通过检查wp_is_mobile()对于从非移动设备访问的用户是否返回false,您应该能够停止加载滑块。 If it's the other way around and the user's visiting from a mobile device, the call to the slider shouldn't be invoked and none of the assets should be called either. 如果相反,并且用户正在从移动设备进行访问,则不应调用对滑块的调用,也不应调用任何资产。

While assets are one thing, to just hide the slider in general, CSS is another option. 尽管资产是一回事,但通常只隐藏滑块是另一种选择。 The plugin author suggests utilizing "Hide Slider Under Width" if you want a solution via settings, but you mentioned that the settings aren't reliable. 插件作者建议,如果要通过设置解决方案,请使用“隐藏宽度以下的滑块”,但是您提到设置不可靠。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM