实现同步更新主要有两种核心思路:

- 自动化同步(推荐):通过修改程序文件,让发布或编辑文章时,自动将内容同步到手机站,这是最省心、最高效的方法。
- 手动同步:通过后台的一个功能按钮,手动将PC站的文章推送到手机站,适合偶尔需要同步或作为备用方案。
下面我们以最主流的手机站使用 /m/ 目录为例,详细讲解自动化同步的实现方法。
核心原理
DedeCMS的PC站和手机站(/m/ 目录)共用同一个数据库,它们的区别在于:
- PC站:调用默认的模板(
/templets/default/)。 - 手机站:调用移动端模板(
/templets/default/wap/或/templets/m/)。
同步更新的关键在于:当你在PC后台发布或编辑文章时,除了更新PC站的文章数据,同时也要更新手机站所需的文章数据(主要是文章内容、缩略图等),并确保手机站的文章列表能正确调用到这些数据。
自动化同步(核心方法)
这个方法的核心是修改 article_add.php(添加文章)和 article_edit.php(编辑文章)这两个文件,让它们在执行完PC站的操作后,自动执行一次手机站的操作。

第1步:确保手机站配置正确
- 检查手机站目录:确保你的手机站文件位于
/m/目录下,这是DedeCMS的默认设置。 - 检查手机站模板:确保你的移动端模板文件存放在正确的目录,
/templets/default/wap/。 - 检查手机站后台:访问
/m/dede/,确保手机站的后台可以正常登录和使用,这是手机站能够执行操作的前提。
第2步:修改 article_add.php(添加文章时同步)
-
找到文件:用FTP或文件管理器,打开
/dede/article_add.php文件。 -
定位代码:找到文件末尾的
ShowMsg()函数,它通常是添加成功后的提示跳转,在ShowMsg()函数之前,添加以下代码:// 同步更新到手机站 $arcID = $arcid; // 获取刚刚添加的文章ID if($arcID > 0) { // 引入手机站的操作类文件 require_once(DEDEINC.'/arc.archives.class.php'); $mobile = new Archives($arcID); // 更新手机站的文章内容 $mobile->MakeHtml(); }代码解释:
$arcID = $arcid;获取刚刚插入数据库的文章ID。require_once(DEDEINC.'/arc.archives.class.php');引入DedeCMS的核心文章处理类。$mobile = new Archives($arcID);创建一个文章类的实例,传入文章ID。$mobile->MakeHtml();调用这个实例的MakeHtml()方法,这个方法会根据文章ID,生成对应的HTML页面,并更新相关列表页,由于我们是在/m/目录下操作,它会自动使用手机站的模板。
-
保存文件:保存并上传覆盖
/dede/article_add.php。
(图片来源网络,侵删)
第3步:修改 article_edit.php(编辑文章时同步)
-
找到文件:打开
/dede/article_edit.php文件。 -
定位代码:同样,找到文件末尾的
ShowMsg()函数,在它之前,添加以下代码:// 同步更新到手机站 $arcID = $id; // 获取正在编辑的文章ID if($arcID > 0) { // 引入手机站的操作类文件 require_once(DEDEINC.'/arc.archives.class.php'); $mobile = new Archives($arcID); // 更新手机站的文章内容 $mobile->MakeHtml(); }代码解释:逻辑与
article_add.php完全相同,只是获取文章ID的变量名不同(这里是$id)。 -
保存文件:保存并上传覆盖
/dede/article_edit.php。
第4步:处理缩略图同步(可选但推荐)
PC站和手机站的缩略图尺寸需求不同,如果想让手机站使用专门的缩略图,你需要手动处理,如果只是通用缩略图,上述步骤已经足够。
如果需要同步缩略图,可以在上述代码块中,增加一段处理缩略图的逻辑,比如重新生成一张适合手机尺寸的图片并上传,但这比较复杂,对于大多数网站,共用一张缩略图即可。
第5步:清理缓存
完成以上修改后,务必到DedeCMS后台的 “系统” -> “一键更新网站”,选择“更新HTML”和“更新栏目”,然后执行一次全站更新,以确保所有生成的页面都包含最新的同步逻辑。
手动同步(作为备用方案)
如果你不想修改核心文件,或者只是偶尔需要同步,可以采用手动方法。
步骤:
-
在手机站后台操作:
- 登录手机站的后台:
你的域名/m/dede/。 - 进入 发布” -> “添加文档” 或 “文档管理” -> “编辑文档”。
- 你会发现这里的文章列表和PC站是同步的,因为它们用的是同一个数据库。
- 手动选择一篇需要同步的文章,点击“编辑”。
- 进入编辑页面后,什么都不用改,直接点击“保存”按钮。
- 系统会重新生成这篇文章的手机站HTML页面。
- 登录手机站的后台:
-
批量更新:
- 在手机站后台的“文档管理”中,你可以全选所有文章。
- 点击底部的“生成HTML”按钮。
- 系统会遍历所有选中的文章,并重新生成它们的手机站页面,这个操作比较耗时,文章多的时候请耐心等待。
缺点:每次发布新文章或编辑文章后,都需要手动去手机站后台再操作一遍,非常容易忘记,不够自动化。
重要注意事项和常见问题
- 文件备份:在修改
article_add.php和article_edit.php之前,务必备份原文件!以防修改出错导致无法正常发布文章。 - 模板差异:确保PC站和手机站的模板是不同的,手机站模板应该更简洁、适配移动端屏幕。
- URL规则:手机站的URL规则(在后台“系统” -> “核心设置”中)应该设置为
/m/a/这样的格式,这样文章的链接才会是你的域名/m/a/123.html。 - 栏目同步:上述方法主要同步的是文章内容,栏目本身是共用的,所以栏目列表会自动同步,但栏目封面页和列表页的模板是独立的,需要确保手机站的栏目模板(
list_wap.htm或类似)存在且正确。 - 如果同步后手机站内容不更新:
- 检查是否正确修改了文件。
- 检查手机站模板路径是否正确。
- 检查目录
/m/下的文件权限是否正确(需要可写)。 - 执行一次“一键更新网站”,强制重新生成页面。
- 插件方案:市面上也有一些DedeCMS的同步插件,可以实现更复杂的功能(如只同步特定栏目、自定义同步规则等,如果你对代码不熟悉,可以搜索这类插件作为备选方案。
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 自动化同步 | 一劳永逸,省心省力,确保内容实时同步 | 需要修改核心文件,有轻微风险 | 强烈推荐,几乎所有网站都适用 |
| 手动同步 | 无需修改代码,操作简单直观 | 容易遗忘,效率低下,不适合频繁更新 | 作为备用方案,或偶尔进行批量更新 |
对于绝大多数用户来说,方法一(自动化同步)是最佳选择,它只需要一次性的文件修改,就能带来长久的好处,彻底解决内容同步的烦恼。
