基于UA的动态PHP内容的条件加载

Conditional loading of dynamic PHP content based on UA

本文关键字:条件 加载 PHP UA 动态 基于      更新时间:2023-09-26

我正在开发一个WordPress主题,该主题使用自定义Walker类来生成主导航菜单。主菜单上有很多照片,你可以把它想象成优步菜单。

我显然不想在移动设备上加载所有这些图像,相反,如果你愿意的话,我只想要一个基本的文本菜单。

我想根据UA和/或用户屏幕大小加载正确的菜单。在所有图像加载到浏览器之前,是否可以有条件地加载我想要使用的菜单(使用javascript?)。我不想加载两个菜单,然后根据屏幕大小隐藏一个,因为浏览器仍然需要在后台加载所有图像。

我想把wp_nav_menu()函数放在一个单独的PHP文件中,然后根据屏幕大小加载该PHP,但我不确定这是否安全和/或有效,或者是正确的方法。如果有帮助的话,我会使用Modernizr。

任何想法都值得赞赏

我认为检测用户代理并决定提供什么内容最好在服务器端完成,但这是一场激烈的争论,双方都有优势。

要用PHP完成这项工作,这段带有移动检测库的代码将完成任务:

<?php
require_once 'Mobile_Detect.php';
$detect = new Mobile_Detect;
if ( $detect->isMobile() || $detect->isTablet() ) {
    // mobile code
} else {
    // desktop code
}
?>

要使用前端代码,您可以进行完全响应,包括CSS和媒体查询,或者将其用于简单的条件逻辑:

if ( Modernizr.touch ) {
    // mobile code
} else {
    // desktop code
}