织梦pc wap公用数据库

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

这是一个非常经典和常见的网站建设需求,核心目标就是:用一套数据库,同时驱动PC网站和手机WAP网站,但又能根据用户访问的设备类型,自动展示不同的PC版或WAP版模板。

织梦pc wap公用数据库
(图片来源网络,侵删)

下面我将从原理、实现步骤、优缺点以及更优的替代方案等多个角度为您进行全面解析。


核心原理

实现PC和WAP公用数据库的核心原理是 “数据分离,模板分离”

  1. 数据公用,比如文章、产品、图集、分类等,都存储在同一个数据库的同一张表中,所有文章都存在 dede_archives 表里。
  2. 模板分离:创建两套完全独立的模板文件。
    • PC模板:存放在 /templets/pc/ 目录下。
    • WAP/移动端模板:存放在 /templets/wap/ 目录下。
  3. 智能识别与切换:通过在织梦的核心文件中添加一段代码,来识别用户的访问设备,如果用户用手机访问,系统就自动调用WAP模板;如果用户用电脑访问,就调用PC模板。

这样一来,后台只需要发布一次内容,前台就能根据设备自动展示最合适的界面,实现了数据的高度复用。


详细实现步骤

以下是具体的操作步骤,请务必备份您的网站文件和数据库后再进行操作。

织梦pc wap公用数据库
(图片来源网络,侵删)

第1步:创建移动端模板目录

  1. 在您的织梦网站根目录下的 /templets/ 文件夹中,新建一个文件夹,命名为 wap (或者你喜欢的任何名字,如 mobile)。
  2. 将PC端默认模板(default)中的所有文件复制到 /templets/wap/ 目录中,这些文件包括:
    • index.html (首页模板)
    • list_article.htm (文章列表页模板)
    • article_article.htm (文章内容页模板)
    • 以及其他你可能用到的模板文件,如搜索页、表单页等。

第2步:修改移动端模板样式

打开 /templets/wap/ 目录下的所有模板文件,将PC版的CSS样式和JS脚本替换为适合移动端的版本。

  • CSS:移除 px(像素)单位,改用 remem 等相对单位;简化布局,使用流式或响应式布局;增大字体和按钮尺寸以方便触摸。
  • JS:移除或替换不兼容移动端的JS库(如一些复杂的jQuery插件)。
  • HTML:优化图片,使用 srcset<picture> 标签以适应不同屏幕;简化导航结构。

第3步:核心步骤 - 修改核心文件以实现设备识别

这是最关键的一步,我们需要修改织梦的 include 目录下的一个文件,让它在加载模板前自动判断设备类型。

  1. 打开文件:/include/extend.func.php

    • 如果这个文件不存在,请在 /include/ 目录下新建一个名为 extend.func.php 的文件。
  2. extend.func.php 文件中,添加以下函数,这个函数将用于检测用户设备。

    织梦pc wap公用数据库
    (图片来源网络,侵删)
    /**
     * 检测设备是否为移动设备
     * @return bool
     */
    function is_mobile()
    {
        // 如果有HTTP_X_WAP_PROFILE,则一定是移动设备
        if (isset($_SERVER['HTTP_X_WAP_PROFILE'])) {
            return true;
        }
        // 如果via信息含有wap,则一定是移动设备
        if (isset($_SERVER['HTTP_VIA'])) {
            // 找不到为flase,否则为true
            return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;
        }
        // 脑残法,判断手机发送的客户端标志
        if (isset($_SERVER['HTTP_USER_AGENT'])) {
            $clientkeywords = array('nokia', 'sony', 'ericsson', 'mot', 'samsung', 'htc', 'sgh', 'lg', 'sharp', 'sie-', 'philips', 'panasonic', 'alcatel', 'lenovo', 'iphone', 'ipod', 'blackberry', 'meizu', 'android', 'netfront', 'symbian', 'ucweb', 'windowsce', 'palm', 'operamini', 'operamobi', 'openwave', 'nexusone', 'cldc', 'midp', 'wap', 'mobile');
            // 从HTTP_USER_AGENT中查找手机浏览器的关键字
            if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT']))) {
                return true;
            }
        }
        // 协法,判断是否为wap网关
        if (isset($_SERVER['HTTP_ACCEPT'])) {
            // 如果只支持wml并且不支持html,那么是移动设备
            // 如果支持wml和html,但是wml在html之前,则是移动设备
            if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false || (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html')))) {
                return true;
            }
        }
        return false;
    }
  3. 修改 include/common.inc.php 文件。

    • 打开 /include/common.inc.php 文件。
    • 在文件末尾 ?> 之前,添加以下代码:
    // 自动识别设备并设置模板风格
    if (!defined('DEDETEMPLATE')) {
        if (is_mobile()) {
            define('DEDETEMPLATE', '/templets/wap'); // 移动端模板目录
        } else {
            define('DEDETEMPLATE', '/templets/default'); // PC端模板目录,根据你的实际情况修改
        }
    }

代码解释

  • is_mobile() 函数会检查 $_SERVER 中的各种信息(如 HTTP_USER_AGENT),来判断用户是否正在使用手机或平板等移动设备。
  • common.inc.php 是织梦的核心初始化文件,它会在每个页面加载时首先执行。
  • 我们在这里调用 is_mobile() 函数,如果返回 true(是移动设备),就定义一个常量 DEDETEMPLATE,其值为 /templets/wap,否则,就设置为PC端的模板目录(如 /templets/default)。
  • 织梦系统在后续加载模板时,会自动使用这个常量来定位模板文件,从而实现了自动切换。

第4步:清理缓存并测试

  1. 登录织梦后台,进入“系统” -> “性能选项” -> “清除所有缓存”。
  2. 用电脑浏览器访问您的网站,确认看到的是PC版模板。
  3. 用手机浏览器访问您的网站(或者用电脑浏览器的“开发者工具”切换到手机模式),确认看到的是WAP版模板。

至此,PC和WAP公用数据库的设置就完成了。


优缺点分析

优点:

  1. 数据高度统一:后台只需维护一套数据,内容发布一次,多端展示,极大降低了管理成本。
  2. 实现成本较低:相比完全独立的移动站点,这种方案不需要额外的数据库,开发难度和成本都更低。
  3. 利于SEO:因为只有一个域名,所有权重都集中在这个域名上,避免了移动站和PC站权重分散的问题。

缺点:

  1. 模板维护成本高:PC和WAP是两套独立的模板,如果需要修改文章内容(在文章详情页增加一个字段),两套模板都需要同时修改,容易遗漏。
  2. 扩展性有限:这种方案主要实现了模板的切换,但对于复杂的移动端功能(如调用手机特有的API、使用微信JS-SDK等)支持不够灵活。
  3. 性能不是最优:所有设备都加载同一套数据,对于移动端来说,可能会加载一些不必要的字段或内容,虽然可以通过模板优化,但不如独立移动站那样可以做到极致的性能定制。

更优的替代方案:响应式设计

随着技术的发展,响应式设计 已经成为当前的主流和更优的解决方案。

什么是响应式设计? 响应式设计是一种网页设计方法,它能让网页的布局和内容根据用户屏幕尺寸的大小自动进行适配,你只需要编写一套模板,通过CSS3中的媒体查询等技术,让这套模板在不同设备上(PC、平板、手机)呈现出最佳的显示效果。

如何为织梦实现响应式设计?

  1. 选择一套响应式模板:在织梦模板市场或第三方网站寻找并下载一套“响应式”的织梦模板,这些模板已经内置了媒体查询代码。
  2. 修改现有模板:如果你有自己的PC模板,可以请前端开发人员对其进行改造,加入媒体查询代码,使其成为响应式模板。
  3. 无需修改核心文件:因为只有一套模板,所以你不需要像上面那样去修改 common.inc.php 等核心文件。

响应式设计的优势:

  • 一套模板,多端适配:彻底解决了PC/WAP两套模板维护麻烦的问题。
  • 真正的数据公用:不仅是数据库,连模板文件也是一套,实现了最大程度的统一。
  • 用户体验更好:URL不变,用户在不同设备间切换时不会感到割裂。
  • SEO友好:一个URL对应一个页面,权重集中,是Google和百度推荐的做法。

响应式设计的劣势:

  • 初期开发成本可能更高:需要前端开发人员具备响应式设计的技能。
  • 对图片和资源优化要求高:需要考虑不同网络环境下的加载速度,可能需要使用图片延迟加载、不同分辨率图片适配等技术。

总结与建议

方案 实现原理 优点 缺点 适用场景
PC/WAP公用数据库 数据公用,模板分离 成本低,数据统一,SEO权重集中 模板维护成本高,扩展性差 预算有限,对移动端要求不高,且已有PC模板不想大改的旧站改造。
响应式设计 一套模板,CSS适配 维护简单,体验好,是业界标准 初期开发成本高,对前端技术要求高 强烈推荐,几乎所有新项目都应该优先考虑响应式设计。

给您的建议:

  1. 对于新网站:请直接选择响应式设计方案,这是更先进、更高效、更具前瞻性的选择,能为您省去未来无数的维护麻烦。
  2. 对于已有的织梦旧站
    • 如果预算有限,且移动端需求简单,那么采用PC/WAP公用数据库的方案是一个快速可行的过渡方案。
    • 如果有长期规划,建议逐步将旧站模板改造为响应式模板,或者考虑将网站迁移到更现代化的CMS(如WordPress, Typecho等,它们对响应式支持更好)。

希望这份详细的解答能帮助到您!

-- 展开阅读全文 --
头像
unsigned char取值范围是0-255吗?
« 上一篇 2025-12-28
dede position 样式
下一篇 » 2025-12-28

相关文章

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

目录[+]