下面我将为你详细解释如何实现PC和手机WAP的同步,包括标签的使用、模板的制作以及配置的修改。

核心思想
- 数据同步:PC端和手机端共享同一个数据库,你只需要在PC端后台发布和管理内容。
- 模板分离:为PC端和手机端分别制作不同的模板文件。
- 标签适配:使用织梦的模板标签,通过条件判断来决定调用PC模板还是手机模板,或者调用不同样式的数据。
- 域名适配:通过
.htaccess文件(Apache服务器)或web.config文件(IIS服务器)判断用户访问的设备类型,自动跳转到相应的网站(PC或手机)。
第一步:创建手机端模板文件
这是实现同步的基础,你需要为你的网站创建一套专门的手机端模板。
-
创建模板目录: 在织梦的模板目录
/templets/下,新建一个文件夹,mobile/,所有手机端的模板文件都放在这里。 -
复制并修改模板: 将你PC端的主要模板文件(如
index.htm,list_article.htm,article_article.htm等)复制到/templets/mobile/目录下。 -
修改手机端模板: 打开这些复制的模板文件,进行移动端优化:
(图片来源网络,侵删)- 简化布局:删除PC端复杂的侧边栏、顶部导航等。
- 修改CSS:引入移动端专用的CSS文件,使用
meta标签设置视口。 - 优化图片:可以调用更小的缩略图,或者使用
<picture>标签根据屏幕大小加载不同分辨率的图片。
第二步:使用织梦标签实现内容调用
织梦的标签非常灵活,可以让你在一个模板里根据不同环境调用不同的内容,但更常见的做法是,PC和手机模板各自调用同一套数据源,只是展示方式不同。
调用(PC和手机通用)
这些标签在任何模板中都可以使用,它们从数据库获取数据,与模板本身无关。
-
调用栏目列表
{dede:channel type='top' row='8'} <a href="[field:typelink/]">[field:typename/]</a> {/dede:channel} -
调用文章列表
(图片来源网络,侵删){dede:arclist titlelen='30' row='10'} <li> <a href="[field:arcurl/]">[field:title/]</a> <span>[field:pubdate function="MyDate('Y-m-d', @me)"/]</span> </li> {/dede:arclist} -
调用文章内容
{dede:field name='body'/}
这些标签在PC和手机模板中写法一样,但通过CSS控制,呈现的效果完全不同。
判断当前模板并调用不同内容(高级用法)
如果你想在同一个模板文件里,根据访问设备自动切换内容,可以使用 示例:在PC模板中判断并加载手机端的部分内容(不推荐,容易混乱) 更推荐的做法是PC用PC模板,手机用手机模板,但如果你有特殊需求,可以这样: 更实用的场景:调用不同样式的缩略图 假设你PC端需要大图,手机端需要小图,你可以在模板里通过判断来调用不同尺寸的图片标签。 在上面的例子中, 然后在手机端模板中,使用不同的参数: 这是织梦实现移动端适配的关键一步。 完成这一步后,织梦就知道你的手机端模板在哪里了。 为了让用户在手机上访问 对于Apache服务器 (.htaccess文件) 在你的网站根目录下,确保有一个 代码解释: 对于IIS服务器 (web.config文件) 在网站根目录下创建 通过以上步骤,你就实现了织梦DedeCMS的PC端和手机WAP端的内容同步,用户无论用电脑还是手机访问,都能看到经过优化的、适合其设备的界面。{dede:global}配合PHP判断,或者使用更简洁的dede:if
{dede:global name='itemindex' runphp='yes'}
// 这里是PHP代码,可以判断变量
// 如果是从手机端过来的,显示一个提示
if(@me == 'mobile') {
@me = "<p>您正在使用手机访问</p>";
} else {
@me = "<p>您正在使用电脑访问</p>";
}
{/dede:global}
{dede:arclist row='5'}
<div class="item">
<!-- 如果是PC端,调用原图或大图 -->
<a href="[field:arcurl/]">
<img src="[field:litpic/]" alt="[field:title/]" />
</a>
<h3><a href="[field:arcurl/]">[field:title/]</a></h3>
</div>
{/dede:arclist}
[field:litpic/] 调用的是文章默认的缩略图,你可以在发布文章时上传不同尺寸的图片,或者通过修改arclist标签的imgwidth和imgheight参数来控制。{dede:arclist row='5' imgwidth='200' imgheight='150'}
<!-- 这样会强制生成200x150的缩略图,适合PC端 -->
{/dede:arclist}
{dede:arclist row='5' imgwidth='100' imgheight='75'}
<!-- 这样会生成100x75的缩略图,适合手机端 -->
{/dede:arclist}
第三步:配置手机站点(织梦后台设置)
m.yourdomain.com。mobile。
第四步:配置服务器实现自动跳转(.htaccess)
www.yourdomain.com 时,能自动跳转到 m.yourdomain.com,你需要配置服务器的重定向规则。.htaccess 文件,如果没有就创建一个,然后添加以下代码:# 检测手机并跳转到手机站
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|iphone|ipod|ipad|opera mobile|palmos|windows ce|windows phone|iemobile" [NC]
RewriteCond %{HTTP_HOST} !^m\. [NC] # 确保没有跳转到已经存在的m子域名
RewriteRule ^(.*)$ http://m.yourdomain.com/$1 [L,R=301]
RewriteCond: 设置重定向的条件。%{HTTP_USER_AGENT}: 检测用户的浏览器代理字符串,里面包含了设备信息,这里的正则表达式匹配常见的移动设备。!^m\.: 确保访问的域名不是以 m. 开头的,防止无限循环跳转。RewriteRule: 如果满足条件,就将所有请求重定向到 http://m.yourdomain.com/$1($1 代表原始请求的路径)。web.config 文件,内容如下:<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Mobile Redirect" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_USER_AGENT}" pattern="android|blackberry|iphone|ipod|ipad|opera mobile|palmos|windows ce|windows phone|iemobile" />
<add input="{HTTP_HOST}" pattern="^m\." negate="true" />
</conditions>
<action type="Redirect" url="http://m.yourdomain.com/{R:0}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
总结与流程回顾
www.domain.com 和 m.domain.com),并解析到同一个服务器IP。
/templets/ 下创建 mobile 文件夹。mobile 文件夹,并修改为适合手机显示的样式(简化布局、调整CSS等)。
m.domain.com。mobile。
.htaccess (Apache) 或 web.config (IIS) 文件。
