DedeCMS 本身并没有一个独立的、名为 "WAP" 的系统或模板系统。 它的 WAP 功能是通过 PC 端模板的移动适配 来实现的。

核心原理是:DedeCMS 会根据用户访问的设备(手机或电脑),自动调用不同目录下的模板文件来生成页面,对于 WAP/WML,通常使用的是 WML 或 XHTML-MP 这两种移动标记语言。
下面我将从几个方面为你详细解析如何设置和使用 DedeCMS 的 WAP/WML 模板。
核心原理:移动模板目录
DedeCMS 的移动模板存放在一个固定的目录下,这个目录通常位于 /templets/ 目录下。
- 默认移动模板目录:
/templets/wap/ - 模板文件命名:与 PC 端的模板文件名保持一致,PC 端的首页模板是
index.htm,WAP 端的首页模板就应该是/templets/wap/index.htm。
当你通过手机访问网站时,DedeCMS 的核心文件会自动检测到移动设备,并从 templets/wap/ 目录下寻找对应的模板文件来渲染页面。

WAP/WML 模板的基本结构
一个标准的 WML 模板与 PC 端的 HTML 模板结构类似,但其内容、标签和 DOCTYPE 是为移动设备优化的。
WML 模板示例 (index.htm)
这是一个非常基础的 WML 首页模板示例:
<?xml version="1.0" encoding="{dede:global.cfg_soft_lang /}"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="index" title="{dede:global.cfg_webname /}">
<p>
<!-- 这里是页面内容 -->
<a href="{dede:global.cfg_cmsurl /}/">首页</a><br/>
<br/>
{dede:arclist titlelen='30' row='5'}
<a href="[field:arcurl/]">[field:title/]</a><br/>
{/dede:arclist}
<br/>
<a href="{dede:global.cfg_cmsurl /}/plus/list.php?tid=1">栏目一</a><br/>
<a href="{dede:global.cfg_cmsurl /}/plus/list.php?tid=2">栏目二</a><br/>
</p>
</card>
</wml>
代码解析
<?xml ... ?>:XML 声明,指定了文档的版本和字符集。{dede:global.cfg_soft_lang /}会自动调用系统设置的字符集(通常是gbk或utf-8)。<!DOCTYPE ...>:WML 文档类型声明,这是 WML 页面必需的部分,告诉浏览器如何解析文档。<wml>:WML 文档的根元素,所有内容都包含在<wml>和</wml>之间。<card id="index" title="...">:WML 页面中的“卡片”概念,一个 WML 文件可以包含多个<card>,每个卡片代表一个独立的页面视图。id是卡片的唯一标识,title是显示在手机标题栏的名称。<p>:段落标签,用于组织卡片内的文本和链接,在 WML 中,<p>标签内的内容会自动换行。<a href="...">...</a>:超链接标签,用于跳转到其他页面或卡片。- DedeCMS 标签:和 PC 端模板一样,你可以在 WML 模板中使用所有 DedeCMS 的模板标签,如
{dede:global.cfg_webname /}、{dede:arclist}、{dede:field.title}等,这些标签会在服务器端被解析成实际的 HTML/WML 内容。
如何创建和配置 WAP 模板
步骤 1:创建 WAP 模板目录
在你的 DedeCMS 安装目录下,找到 templets 文件夹,在里面新建一个名为 wap 的文件夹。
your_dedecms_install/
├── dede/ (后台管理目录)
├── plus/ (功能模块目录)
├── templets/
│ ├── default/ (PC端默认模板)
│ └── wap/ (新建的WAP模板目录)
└── ...
步骤 2:复制和修改模板文件
-
复制基础文件:将 PC 端模板目录(如
templets/default/)中的关键文件复制到templets/wap/目录下。
(图片来源网络,侵删)index.htm(首页)article_article.htm(文章内容页)list_channel.htm(栏目列表页)index.htm(搜索结果页,通常在plus/目录下)head.htm(头部公共模板)
-
修改模板内容:
- 修改 DOCTYPE:将所有模板文件的
<!DOCTYPE html>或<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">等 HTML 声明,替换为 WML 的声明,如上面的示例所示。 - 修改根标签:将
<html>标签替换为<wml>。 - 结构放入
<card>和<p>标签中。 - 简化样式:WML 对 CSS 的支持非常有限(甚至不支持)。强烈建议不要在 WML 模板中使用
<style>标签或外部 CSS 文件,页面的布局和样式应该通过 WML 标签本身的特性(如换行<br/>、段落<p>)来实现,力求简洁。 - 优化图片:移动端网络速度慢,应尽量使用小尺寸、低分辨率的图片,并可以加上
width和height属性以加快渲染速度。<img src="..." width="100" height="80"/>。 - 调整标签:确保所有 DedeCMS 标签在 WML 环境下都能正常工作,通常大部分标签是通用的,但需要注意输出内容的长度,
titlelen='30'限制标题长度,infolen='100'限制摘要长度。
- 修改 DOCTYPE:将所有模板文件的
步骤 3:设置网站默认手机模板
这是最关键的一步,它告诉 DedeCMS 使用哪个目录作为移动模板。
- 登录你的 DedeCMS 后台。
- 进入【系统】-> 系统基本参数。
- 在左侧菜单中找到【核心设置】。
- 找到 “网站默认手机模板” 这个选项。
- 在输入框中填入你的 WAP 模板目录名,即
wap。 - 点击【保存】。
设置完成后,当移动设备访问你的网站时,DedeCMS 就会自动从 /templets/wap/ 目录加载模板了。
WML vs. XHTML-MP (更现代的选择)
虽然 WML 是 DedeCMS 实现移动端的传统方式,但它已经是一个比较陈旧的技术,现代的智能手机浏览器功能强大,完全可以支持更标准的 XHTML-MP (XHTML for Mobile Profile)。
XHTML-MP 的优势:
- 更好的兼容性:兼容所有现代手机浏览器。
- 支持 CSS:可以使用有限的 CSS 来美化页面,实现更灵活的布局。
- 更标准:基于 XHTML,语法更规范,学习成本更低。
如何创建 XHTML-MP 模板?
过程和 WML 模板几乎一样,只需要修改头部的声明即可。
XHTML-MP 模板头部示例:
<?xml version="1.0" encoding="{dede:global.cfg_soft_lang /}"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset={dede:global.cfg_soft_lang /}" />{dede:global.cfg_webname /}</title>
<!-- 在这里可以引入一个简化的CSS文件 -->
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<!-- 页面内容,使用HTML标签,但要注意移动端的兼容性 -->
<a href="{dede:global.cfg_cmsurl /}/">首页</a><br/>
<br/>
{dede:arclist titlelen='30' row='5'}
<a href="[field:arcurl/]">[field:title/]</a><br/>
{/dede:arclist}
</body>
</html>
使用 XHTML-MP 的建议:
- 在
templets/wap/目录下创建一个style.css文件,编写一些简单的样式。 - 在模板中使用
<div>、<span>等 HTML 标签来构建页面结构,而不是 WML 的<card>。 - 同样,在后台设置“网站默认手机模板”为
wap。
重要注意事项和常见问题
- 字符集问题:确保 WAP 模板的字符集(
encoding和charset)与 DedeCMS 系统设置的一致,通常是utf-8,以避免乱码。 - URL 自动适配:DedeCMS 的文章列表页和内容页链接(如
/plus/list.php和/plus/view.php)是自动适配的,会根据设备类型返回 WML 或 HTML 页面,你不需要修改这些 PHP 文件。 - 不要过度设计:WAP/XHTML-MP 的核心是“内容优先,简洁至上”,避免使用复杂的 JavaScript、Flash 和过多的图片,这会严重影响加载速度和用户体验。
- 测试:WAP 模板必须在真实的手机或手机模拟器上进行测试,可以使用 Chrome 浏览器的“设备模式”(F12 -> Toggle Device Toolbar)来模拟不同手机进行预览和调试。
| 特性 | WML | XHTML-MP |
|---|---|---|
| 标准 | WML 1.1 | XHTML Mobile 1.0 |
| 根标签 | <wml> |
<html> |
| 页面单位 | <card> |
<div> |
| 样式支持 | 极差或不支持 | 有限的 CSS |
| 推荐度 | 旧项目兼容 | 强烈推荐 |
| 实现方式 | 在 templets/wap/ 目录下创建 .htm 文件,修改 DOCTYPE 和标签,并在后台设置模板目录为 wap。 |
为 DedeCMS 创建 WAP/WML 模板的核心就是 “另存一份”:在 templets/wap/ 目录下创建一套独立的、为移动设备优化的模板文件,并通过后台设置激活它,虽然 WML 是传统方式,但推荐使用更现代的 XHTML-MP 来获得更好的兼容性和可控性。
