这个模板是专门为早期的手机WAP网站设计的,WAP 1.0/2.0时代的手机浏览器(如诺基亚、摩托罗拉等内置浏览器)不支持HTML,只能解析WML,织梦CMS通过一套专门的模板引擎来生成WML页面。

index.wml 的核心作用
index.wml 文件位于织梦CMS的 /templets/default/ 目录下(如果你的网站使用了其他模板,则位于对应的模板目录),它的作用是定义WAP首页的结构和内容,当用户通过手机访问网站时,织梦系统会调用这个模板,并填充数据库中的内容,最终生成一个符合WML规范的页面返回给用户的手机。
index.wml 文件结构与解析
一个典型的 index.wml 文件由以下几个部分组成:
- WML头部声明
- 卡片结构
- 织梦模板标签
- WML基本元素
下面我们通过一个完整的示例来逐行解析。
示例 index.wml 文件
<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN" "http://www.wapforum.org/DTD/wml13.dtd">
<wml>
<card id="index" title="我的WAP网站">
<p>
<!-- 网站Logo和名称 -->
<img src="{dede:global.cfg_cmsurl/}/templets/default/images/logo.wbmp" alt="网站Logo"/><br/>
{dede:global.cfg_webname/}<br/>
<br/>
<!-- 一级栏目导航 -->
{dede:channel type='top' row='5'}
<a href="[field:typelink/]">[field:typename/]</a> |
{/dede:channel}
<br/><br/>
<!-- 网站公告/最新文章 -->
<strong>最新文章</strong><br/>
{dede:arclist row='5' titlelen='20'}
<a href="[field:arcurl/]">[field:title/]</a><br/>
{/dede:arclist}
<br/>
<!-- 网站页脚信息 -->
<small>
<a href="{dede:global.cfg_cmspath/}/tags.php">标签云</a> |
<a href="{dede:global.cfg_cmspath/}/plus/search.php">搜索</a> |
<a href="{dede:global.cfg_cmspath/}/sitemap.wml">网站地图</a><br/>
Power by DedeCMS © {dede:global.cfg_powerby/}
</small>
</p>
</card>
</wml>
详细代码解析
WML头部声明
<?xml version="1.0" encoding="gb2312"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN" "http://www.wapforum.org/DTD/wml13.dtd"> <wml>
<?xml ... ?>:标准的XML声明,指定了XML版本和字符编码。gb2312是早期WAP网站常用的编码,因为它能兼容大多数非智能手机,现代WAP站点建议使用utf-8。<!DOCTYPE ...>:文档类型声明,告诉浏览器这个文档遵循的是WML 1.3规范。<wml>:WML文档的根元素,所有内容都必须包含在<wml>和</wml>之间。
卡片结构
<card id="index" title="我的WAP网站">
<p>
... 所有内容 ...
</p>
</card>
<card>:WML的核心概念,一个WML文档可以包含一个或多个<card>,每个card就像一张独立的卡片,用户通过手机上的“前进/后退”按钮来切换。id="index":卡片的唯一标识符,方便内部链接跳转到此卡片。"我的WAP网站"`:当卡片被加载时,手机浏览器会在标题栏显示这个文本。<p>:段落标签,WML中的内容必须放在<p>或<do>等标签内,不能直接放在<card>下。<p>标签内的文本会自动换行。
织梦模板标签
这是织梦CMS动态内容的核心,以 {dede:...} 或 [field:...] 的形式出现。
-
全局标签:
{dede:global.cfg_webname/}:输出网站后台设置的“网站名称”。{dede:global.cfg_cmsurl/}:输出网站的CMS根目录URL。{dede:global.cfg_powerby/}:输出版权信息,如 "DedeCMS"。{dede:global.cfg_cmspath/}:输出CMS的安装路径。
-
栏目标签:
{dede:channel type='top' row='5'}:调用顶级栏目。type='top':指定调用顶级栏目。row='5':指定调用5个栏目。
[field:typelink/]:当前栏目的链接地址。[field:typename/]:当前栏目的名称。
-
文章列表标签:
{dede:arclist row='5' titlelen='20'}:调用文章列表。row='5':调用5篇文章。titlelen='20'长度限制为20个字符(一个汉字算一个字符)。
[field:arcurl/]:当前文章的链接地址。[field:title/]:当前文章的标题。
WML基本元素
<br/>:换行标签,在WML中非常重要,用于控制文本和图片的布局。<img src="..." alt="..." />:图片标签。src:图片路径。注意:WML手机支持的图片格式非常有限,通常是.wbmp(Wireless Bitmap) 格式,普通JPG/PNG手机无法显示。alt:图片的替代文本,当图片无法加载时显示。
<a href="...">...</a>:超链接标签,用于页面跳转。 :非断空格,用于在文本中添加空格,实现简单的缩进或对齐。<strong>和<small>:文本格式化标签,分别用于显示粗体和小号字体。
创建和自定义 index.wml 的步骤
-
定位模板文件: 登录织梦后台,进入“模板” -> “默认模板管理”,找到“首页模板”,点击“修改”,或者直接通过FTP访问
/templets/default/目录下的index.wml文件。 -
修改网站信息: 使用
{dede:global.cfg_webname/}等全局标签来动态显示网站名称、版权等,也可以直接写死文本,但不推荐。 -
设计栏目导航: 使用
{dede:channel}标签调用你的网站栏目,调整row属性来控制显示的数量,可以配合<br/>和 等符号来美化排版。 -
模块: 使用
{dede:arclist}标签来调用文章、软件、图集等内容,可以创建多个arclist来展示不同栏目或不同推荐级别的文章。 -
添加页脚和辅助链接: 在页面底部添加“搜索”、“网站地图”、“TAG标签”等常用链接,方便用户导航。
-
图片处理: 如果你需要使用图片,请务必将它们转换为
.wbmp格式,可以使用在线转换工具或Photoshop等软件进行转换,然后上传到织梦模板目录下,并修改<img>标签的src路径。 -
预览和调试:
现代替代方案:移动适配与响应式设计
需要强调的是,WML技术已经非常过时,智能手机普及,标准的HTML5/CSS3/JavaScript可以完美适配各种设备。
现代织梦CMS(以及所有现代CMS)处理移动端的主流方式是:
- 响应式设计:使用CSS3的媒体查询(
@media),一套HTML模板可以根据不同屏幕尺寸(手机、平板、桌面)自动调整布局。 - 移动适配:为移动用户单独创建一套HTML模板(
m/index.html),通过PHP或JS代码检测用户设备,自动跳转到移动版页面。
虽然理解 index.wml 有助于你了解织梦CMS的历史和模板机制,但在新项目中,请务必放弃WML,采用响应式设计或移动适配的HTML方案,以提供更好的用户体验。
