织梦index.wml是什么?为何要用它?

99ANYc3cd6
预计阅读时长 18 分钟
位置: 首页 织梦建站 正文

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

织梦index.wml
(图片来源网络,侵删)

index.wml 的核心作用

index.wml 文件位于织梦CMS的 /templets/default/ 目录下(如果你的网站使用了其他模板,则位于对应的模板目录),它的作用是定义WAP首页的结构和内容,当用户通过手机访问网站时,织梦系统会调用这个模板,并填充数据库中的内容,最终生成一个符合WML规范的页面返回给用户的手机。

index.wml 文件结构与解析

一个典型的 index.wml 文件由以下几个部分组成:

  1. WML头部声明
  2. 卡片结构
  3. 织梦模板标签
  4. 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'}
        &nbsp;&nbsp;<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 &copy; {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>:超链接标签,用于页面跳转。
  • &nbsp;:非断空格,用于在文本中添加空格,实现简单的缩进或对齐。
  • <strong><small>:文本格式化标签,分别用于显示粗体和小号字体。

创建和自定义 index.wml 的步骤

  1. 定位模板文件: 登录织梦后台,进入“模板” -> “默认模板管理”,找到“首页模板”,点击“修改”,或者直接通过FTP访问 /templets/default/ 目录下的 index.wml 文件。

  2. 修改网站信息: 使用 {dede:global.cfg_webname/} 等全局标签来动态显示网站名称、版权等,也可以直接写死文本,但不推荐。

  3. 设计栏目导航: 使用 {dede:channel} 标签调用你的网站栏目,调整 row 属性来控制显示的数量,可以配合 <br/> 和 等符号来美化排版。

  4. 模块: 使用 {dede:arclist} 标签来调用文章、软件、图集等内容,可以创建多个arclist来展示不同栏目或不同推荐级别的文章。

  5. 添加页脚和辅助链接: 在页面底部添加“搜索”、“网站地图”、“TAG标签”等常用链接,方便用户导航。

  6. 图片处理: 如果你需要使用图片,请务必将它们转换为 .wbmp 格式,可以使用在线转换工具或Photoshop等软件进行转换,然后上传到织梦模板目录下,并修改<img>标签的src路径。

  7. 预览和调试

    • 在线模拟器:最简单的方法是使用在线WAP模拟器,如 WAPSIM手机浏览器模拟器,将你的WML网址输入即可预览效果。
    • 真机测试:将网站部署到服务器上,用一部老式智能手机或智能手机的“开发者模式”模拟旧版浏览器访问,这是最准确的测试方法。

现代替代方案:移动适配与响应式设计

需要强调的是,WML技术已经非常过时,智能手机普及,标准的HTML5/CSS3/JavaScript可以完美适配各种设备。

现代织梦CMS(以及所有现代CMS)处理移动端的主流方式是:

  1. 响应式设计:使用CSS3的媒体查询(@media),一套HTML模板可以根据不同屏幕尺寸(手机、平板、桌面)自动调整布局。
  2. 移动适配:为移动用户单独创建一套HTML模板(m/index.html),通过PHP或JS代码检测用户设备,自动跳转到移动版页面。

虽然理解 index.wml 有助于你了解织梦CMS的历史和模板机制,但在新项目中,请务必放弃WML,采用响应式设计或移动适配的HTML方案,以提供更好的用户体验。

-- 展开阅读全文 --
头像
C语言Windows开发环境如何快速搭建?
« 上一篇 02-12
Dijkstra算法C语言实现如何正确编写?
下一篇 » 02-12

相关文章

取消
微信二维码
支付宝二维码

目录[+]