PC站与手机站分离(推荐)
这是目前最专业、最灵活的方案,PC站和手机站是两套独立的模板,但共享同一个后台数据库,通过代码判断用户设备,自动加载对应的模板。

(图片来源网络,侵删)
核心原理:
- 独立模板:为PC端和手机端分别创建模板文件夹,
/templets/pc/和/templets/mobile/。 - 设备判断:在网站入口文件
index.php中加入一段PHP代码,用于检测用户的访问设备(PC、手机、平板等)。 - 模板加载:根据检测结果,自动加载相应目录下的模板文件。
详细步骤:如何在分离式手机站中调用内容
第1步:创建手机站模板目录
- 在织梦的模板目录
/templets/下,新建一个文件夹,例如命名为mobile。 - 将PC端模板中需要适配手机的部分(如首页
index.html、列表页list_article.html页article_article.html等)复制到mobile文件夹中。 - 在手机模板中,你需要对这些文件进行响应式修改(使用CSS媒体查询)或简化修改(调整布局、字体大小、隐藏不必要的模块),使其在手机上显示良好。
第2步:修改网站入口文件 index.php
这是最关键的一步,用于实现设备自动识别和模板切换。
- 打开网站根目录下的
index.php文件。 - 在文件开头
<?php之后,require_once (dirname(__FILE__) . "/include/common.inc.php");这行代码之前,加入以下设备检测代码:
<?php
// ----------------- 手机站自动识别与跳转开始 -----------------
if (isset($_GET['mobile'])) {
$mobile = intval($_GET['mobile']);
} else {
// 获取手机浏览器类型
$mobile = (bool)preg_match('/(android|iphone|ipod|ipad|ios|blackberry|webos|windows phone)/i', $_SERVER['HTTP_USER_AGENT']);
}
// 如果是手机访问,则切换到手机模板目录
if ($mobile) {
define('DEDEMOB', 'Y');
$cfg_templets_dir = $cfg_templets_dir . '/mobile';
}
// ----------------- 手机站自动识别与跳转结束 -----------------
require_once (dirname(__FILE__) . "/include/common.inc.php");
代码解释:
- 这段代码会检测用户的浏览器代理信息(
HTTP_USER_AGENT)。 - 如果发现是常见的移动设备关键词,就会设置一个常量
DEDEMOB为'Y',并且动态修改织梦的模板目录变量$cfg_templets_dir指向/templets/mobile。 - 这样,当手机用户访问时,织梦就会自动去加载
mobile文件夹下的模板了。
第3步:在手机模板中调用内容(核心问题)
既然PC和手机站共享数据库,那么调用标签(标签)的使用方法基本是一致的,你只需要在手机模板文件(如 /templets/mobile/index.html)中正常使用织梦标签即可。
示例1:调用文章列表

(图片来源网络,侵删)
在手机端首页模板 mobile/index.html 中,你可以这样调用最新文章列表,和PC端写法完全一样:
{dede:arclist titlelen='40' row='8'}
<li>
<a href="[field:arcurl/]">[field:title/]</a>
<span>[field:pubdate function="MyDate('m-d', @me)"/]</span>
</li>
{/dede:arclist}
示例2:调用栏目导航
在手机端模板中调用主导航:
{dede:channel type='top' row='8'}
<a href="[field:typelink/]">[field:typename/]</a>
{/dede:channel}
示例3:调用图片集

(图片来源网络,侵删)
如果你的手机站首页需要展示一个图片集,可以这样调用:
{dede:imglist typeid='栏目ID' row='5'}
<li>
<a href="[field:arcurl/]">
<img src="[field:litpic/]" alt="[field:title/]">
<span>[field:title/]</span>
</a>
</li>
{/dede:imglist}
重要提示:
- 标签通用性:绝大多数织梦标签在手机站中都是通用的,你需要关注的是样式,而不是标签本身。
- 图片处理:手机站对图片大小和加载速度要求更高,建议在手机模板中使用CSS控制图片宽度为100%,并考虑使用织梦的图片缩略图功能或配合CDN来加速。
- JS冲突:PC端的一些JS特效(如jQuery轮播、下拉菜单等)可能在手机端不兼容或体验很差,建议在手机模板中使用更轻量、更适合触摸操作的JS库,或者直接禁用这些特效。
PC站自动跳转到手机站URL
这种方法不常用,但了解一下也有好处,它不是切换模板,而是直接将用户重定向到另一个手机域名。
核心原理:
在PC站首页的 head 部分加入一段JS代码,当检测到是手机访问时,自动跳转到你的手机站域名(m.yourdomain.com)。
实现方法:
- 准备一个独立的手机站域名,如
m.yourdomain.com,并部署好手机站内容。 - 在PC站首页模板
index.html的<head>和</head>标签之间加入以下代码:
<script>
// 检测是否为移动设备
function isMobile() {
return (typeof window.orientation !== "undefined") || (navigator.userAgent.indexOf('IEMobile') !== -1);
}
// 如果是移动设备,则跳转到手机站
if (isMobile()) {
window.location.href = "http://m.yourdomain.com"; // 请替换为你的手机站域名
}
</script>
缺点:
- 不利于SEO,搜索引擎需要分别索引两个网站。
- 维护两套独立的数据,容易不同步。
- 用户体验有中断感(页面会重新加载)。
强烈推荐使用第一种方法(模板分离)。
总结与最佳实践
- 首选方案:采用PC与手机站模板分离的方式,它共享数据库,易于维护,且对SEO友好。
- 核心操作:修改
index.php文件进行设备识别和模板目录切换。 - 内容调用:在手机模板中,直接使用与PC端相同的织梦标签来调用数据库内容。
- 重点在于样式:手机站开发的重心不是标签,而是使用CSS和JavaScript来优化移动端的布局、交互和性能。
- 测试:完成开发后,务必使用多种不同型号的手机和浏览器进行测试,确保兼容性和显示效果。
希望这份详细的指南能帮助你成功在织梦手机网站中调用内容!
