如何实现手机站与主站内容同步更新?

99ANYc3cd6
预计阅读时长 12 分钟
位置: 首页 DEDE建站 正文

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

dede手机站同步更新
(图片来源网络,侵删)
  1. 自动化同步(推荐):通过修改程序文件,让发布或编辑文章时,自动将内容同步到手机站,这是最省心、最高效的方法。
  2. 手动同步:通过后台的一个功能按钮,手动将PC站的文章推送到手机站,适合偶尔需要同步或作为备用方案。

下面我们以最主流的手机站使用 /m/ 目录为例,详细讲解自动化同步的实现方法。


核心原理

DedeCMS的PC站和手机站(/m/ 目录)共用同一个数据库,它们的区别在于:

  • PC站:调用默认的模板(/templets/default/)。
  • 手机站:调用移动端模板(/templets/default/wap//templets/m/)。

同步更新的关键在于:当你在PC后台发布或编辑文章时,除了更新PC站的文章数据,同时也要更新手机站所需的文章数据(主要是文章内容、缩略图等),并确保手机站的文章列表能正确调用到这些数据。


自动化同步(核心方法)

这个方法的核心是修改 article_add.php(添加文章)和 article_edit.php(编辑文章)这两个文件,让它们在执行完PC站的操作后,自动执行一次手机站的操作。

dede手机站同步更新
(图片来源网络,侵删)

第1步:确保手机站配置正确

  1. 检查手机站目录:确保你的手机站文件位于 /m/ 目录下,这是DedeCMS的默认设置。
  2. 检查手机站模板:确保你的移动端模板文件存放在正确的目录,/templets/default/wap/
  3. 检查手机站后台:访问 /m/dede/,确保手机站的后台可以正常登录和使用,这是手机站能够执行操作的前提。

第2步:修改 article_add.php(添加文章时同步)

  1. 找到文件:用FTP或文件管理器,打开 /dede/article_add.php 文件。

  2. 定位代码:找到文件末尾的 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/ 目录下操作,它会自动使用手机站的模板。
  3. 保存文件:保存并上传覆盖 /dede/article_add.php

    dede手机站同步更新
    (图片来源网络,侵删)

第3步:修改 article_edit.php(编辑文章时同步)

  1. 找到文件:打开 /dede/article_edit.php 文件。

  2. 定位代码:同样,找到文件末尾的 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)。

  3. 保存文件:保存并上传覆盖 /dede/article_edit.php

第4步:处理缩略图同步(可选但推荐)

PC站和手机站的缩略图尺寸需求不同,如果想让手机站使用专门的缩略图,你需要手动处理,如果只是通用缩略图,上述步骤已经足够。

如果需要同步缩略图,可以在上述代码块中,增加一段处理缩略图的逻辑,比如重新生成一张适合手机尺寸的图片并上传,但这比较复杂,对于大多数网站,共用一张缩略图即可。

第5步:清理缓存

完成以上修改后,务必到DedeCMS后台的 “系统” -> “一键更新网站”,选择“更新HTML”和“更新栏目”,然后执行一次全站更新,以确保所有生成的页面都包含最新的同步逻辑。


手动同步(作为备用方案)

如果你不想修改核心文件,或者只是偶尔需要同步,可以采用手动方法。

步骤:

  1. 在手机站后台操作

    • 登录手机站的后台:你的域名/m/dede/
    • 进入 发布” -> “添加文档”“文档管理” -> “编辑文档”
    • 你会发现这里的文章列表和PC站是同步的,因为它们用的是同一个数据库。
    • 手动选择一篇需要同步的文章,点击“编辑”。
    • 进入编辑页面后,什么都不用改,直接点击“保存”按钮。
    • 系统会重新生成这篇文章的手机站HTML页面。
  2. 批量更新

    • 在手机站后台的“文档管理”中,你可以全选所有文章。
    • 点击底部的“生成HTML”按钮。
    • 系统会遍历所有选中的文章,并重新生成它们的手机站页面,这个操作比较耗时,文章多的时候请耐心等待。

缺点:每次发布新文章或编辑文章后,都需要手动去手机站后台再操作一遍,非常容易忘记,不够自动化。


重要注意事项和常见问题

  1. 文件备份:在修改 article_add.phparticle_edit.php 之前,务必备份原文件!以防修改出错导致无法正常发布文章。
  2. 模板差异:确保PC站和手机站的模板是不同的,手机站模板应该更简洁、适配移动端屏幕。
  3. URL规则:手机站的URL规则(在后台“系统” -> “核心设置”中)应该设置为 /m/a/ 这样的格式,这样文章的链接才会是 你的域名/m/a/123.html
  4. 栏目同步:上述方法主要同步的是文章内容,栏目本身是共用的,所以栏目列表会自动同步,但栏目封面页和列表页的模板是独立的,需要确保手机站的栏目模板(list_wap.htm 或类似)存在且正确。
  5. 如果同步后手机站内容不更新
    • 检查是否正确修改了文件。
    • 检查手机站模板路径是否正确。
    • 检查目录 /m/ 下的文件权限是否正确(需要可写)。
    • 执行一次“一键更新网站”,强制重新生成页面。
  6. 插件方案:市面上也有一些DedeCMS的同步插件,可以实现更复杂的功能(如只同步特定栏目、自定义同步规则等,如果你对代码不熟悉,可以搜索这类插件作为备选方案。
方法 优点 缺点 适用场景
自动化同步 一劳永逸,省心省力,确保内容实时同步 需要修改核心文件,有轻微风险 强烈推荐,几乎所有网站都适用
手动同步 无需修改代码,操作简单直观 容易遗忘,效率低下,不适合频繁更新 作为备用方案,或偶尔进行批量更新

对于绝大多数用户来说,方法一(自动化同步)是最佳选择,它只需要一次性的文件修改,就能带来长久的好处,彻底解决内容同步的烦恼。

-- 展开阅读全文 --
头像
Ubuntu下C语言编译器怎么用?
« 上一篇 前天
dede模板 政府机关
下一篇 » 前天

相关文章

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

目录[+]