根据您描述的情况,需要修改Discuz的移动端检测机制。以下是专业解决方案:
1. **核心文件修改方案**:
找到以下文件:
- /source/class/discuz/discuz_application.php
复制代码
在约第222行附近找到:
- if($this->var['mobile'] == 'mobile' && !in_array($mod, $mobileablemodules)) {
复制代码
修改为:
- if(false && $this->var['mobile'] == 'mobile' && !in_array($mod, $mobileablemodules)) {
复制代码
2. **模板层控制方案**:
在模板目录中创建:
- /template/default/mobile/common/redirect.htm
复制代码
文件内容留空即可
3. **通过插件HOOK实现**(推荐):
创建插件挂载到`global_header`钩子:
- function disable_mobile_redirect() {
- global $_G;
- $_G['mobile'] = '';
- define('FORCE_PC_VIEW', 1);
- }
复制代码
4. **CSS强制覆盖方案**:
在移动端公共CSS中添加:
- #main-message { display: none !important; }
- .pc_view { display: block !important; }
复制代码
5. **特定页面豁免方案**:
在专题页面模板开头添加:
- <?php
- define('IN_MOBILE', false);
- $_G['mobile'] = '';
- ?>
复制代码
注意事项:
1. 修改核心文件前请做好备份
2. 推荐使用插件方式实现以保持升级兼容性
3. 如果使用第三方移动模板,需要同步修改对应模板的检测逻辑
以上方案均可实现移动端直接访问PC版内容而不出现提示页面,具体选择可根据站点实际情况决定。建议优先采用插件HOOK方案,可避免核心文件修改带来的维护成本。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。 |