Files
2026-08-27 11:54:26 +08:00

8.8 KiB
Raw Permalink Blame History

HESU 主题线上部署方案

适用:hesu-theme/hesu.zip(13 MB,图片压缩版,2026-08-19 验收见 docs/plans-audit-fix-acceptance.md) 主题要求:WordPress ≥ 6.1(测试至 7.0)、PHP ≥ 7.4(建议 8.x)、MySQL/MariaDB、HTTPS


一、部署前准备

项 要求 说明
PHP ≥7.4,建议 8.0+ 需扩展:mysqli/gd/curl/mbstring/fileinfo/openssl(主流主机默认都有)
WordPress ≥6.1 全新安装(见"已有站点"警告)
上传限制 ≥16MB 或走 FTP wp-admin 上传 zip 受 upload_max_filesize 限制(常见默认 2–8M,13MB 会失败)
插件 Contact Form 7 唯一硬依赖(联系表单);先装它再激活主题(激活时自动建表单)

二、全新站点部署(推荐路径)

Step 1 — 安装 WordPress

  1. 主机绑定域名 + SSL 证书(HTTPS)
  2. 全新安装 WordPress(数据库新建;站点语言随意——前台内容是英文,管理后台语言不影响)
  3. 设置 → 固定链接 → 选择"文章名"(/%postname%/)→ 保存(seed 页面的友好 URL 依赖它)

Step 2 — 安装 Contact Form 7

插件 → 安装插件 → 搜索 "Contact Form 7" → 安装并激活。 (此时 CF7 自带一个 "Contact form 1",无需管它;主题激活时会另建 "HESU Inquiry" 并自动绑定到联系页。)

Step 3 — 上传主题(二选一)

  • 方式 A(后台上传):先把 PHP 上传限制调到 ≥30M(宝塔/面板的 PHP 设置,或 .user.ini:upload_max_filesize=32M + post_max_size=32M)→ 外观 → 主题 → 添加 → 上传主题 → 选 hesu.zip → 现在安装
  • 方式 B(FTP/文件管理器):解压 hesu.zip → 把 hesu 目录上传到 wp-content/themes/hesu → 外观 → 主题 → 找到 HESU → 启用

Step 4 — 激活(自动完成的事)

点击"启用"后主题自动播种,无需任何手动导入:

  • 创建 9 个页面(首页/四大业务/全球布局/关于我们/发展历程/联系)+ 全部内容与图片入库(约 97 张媒体)
  • 创建 4 篇示例新闻 + 4 个分类 + 菜单(主导航/页脚,含 Mega Menu 卡片)+ HESU Inquiry 表单
  • 把站点首页设为 Home(设置 → 阅读 里自动配置好)

Step 5 — 部署后验证清单(5 分钟)

  • 首页:数字滚动、四大业务磁贴、区域轮播可拖拽、Partner 自动轮播、新闻 4 卡
  • 全球布局 /global-presence/:滚轮一屏一翻、导航高亮
  • 关于我们 /about-us/:滚动视屏动画(标语淡入、logo 揭示)
  • 新闻 /news/:Tab 切换、点进详情页、上一篇/下一篇
  • 联系 /contact/:表单空提交显示红校验、地图与联系信息展示
  • 悬停导航 Business/About Us:Mega Menu 展开(4 卡/2 卡)
  • 手机宽度:汉堡抽屉菜单开合

Step 6 — 站点配置(后台可改项)

位置 配置内容
外观 → 自定义 → HESU Global 社交链接 ×4(TikTok/Facebook/Instagram/WhatsApp,空则 #)、页脚标语、版权文字、新闻页 banner 图
外观 → 自定义 → 站点身份 Logo(不传则用主题内置 logo.png)
联系 → Contact Form 7 → HESU Inquiry → 邮件 收件人改为真实邮箱(默认站长邮箱)
设置 → 常规 站点标题/副标题/时区

发信建议:生产主机若没配邮件(多数虚拟主机 PHP mail() 不可靠),安装 WP Mail SMTP 类插件配置 SMTP,否则表单提交后管理员收不到通知(前台的成功/失败提示样式不依赖发信,但业务上收不到信=没线索)。

Step 7 — 替换示例内容

  • 4 篇新闻为占位示例(后台 → 新闻,可编辑/删除/新发;删空某分类会显示 "Coming soon" 空态,属正常设计)
  • 页面文案/图片:后台 → 页面 → 任一页面,区块结构已锁定,点文字/图片直接改
  • ⚠️ 不要"解锁"任何区块(解锁=破坏页面结构);管理员权限虽可解锁,修复需到 外观 → HESU Tools 重跑 seed(会覆盖所有页面内容)

三、已有站点安装(警告)

主题的激活播种会把站点首页切换为新建的 Home 页,并创建 9 个新页面/菜单/文章——适合全新站。若必须装到已有站点:

  1. 先完整备份(数据库 + 文件)
  2. 最好先在临时域名/子目录演练一遍
  3. 激活后到 设置 → 阅读 检查首页设置是否符合预期;多余的 seed 内容可手动删除(页面/新闻/菜单,媒体库图片可保留)

四、运维注意事项

主题升级与内容更新

zip 覆盖安装 / FTP 覆盖主题目录 = 只更新代码。数据库里已播种的页面/新闻/菜单内容不会被改动(内容是激活或重播种时写入数据库的,与主题文件分离)。

升级类型 是否重跑 seed 说明
纯代码优化版(性能修复、CSS/JS 调整、本次优化版等) 否 覆盖主题文件即生效,页面内容无需动
静态稿改版后的新版主题 是(readme Changelog 会注明) 需到 外观 → HESU Tools 重跑 seed 才能看到新版页面内容(seed markup 与 render.php 一起更新过);改版同步按 docs/superpowers/plans/2026-08-17-static-v2-sync-report.md 的模式(render.php + seed + 重播种),不要直接改线上的 post_content

重跑 seed = 恢复出厂内容:你在后台对预置页面/新闻/菜单做过的修改会被覆盖。执行前会自动导出预置内容备份(见下方"备份")。

日常

  • 重跑 seed:外观 → HESU Tools → 重新创建预置内容。会覆盖全部 seed 页面内容(有确认弹窗);执行前清空回收站(回收站里的预置页不会被识别复用,会产生重复页)。你后台改过的文案会被还原。
  • 主题目录不可删改:媒体库里的 seed 图片是激活时从主题目录复制的副本,但 CSS 引用约 100 张图直接读主题 image/ 目录——删除主题=样式崩。
  • 子页面必须设特色图:Mega Menu 卡片图取子页面特色图,无图则显示灰色空占位。

备份

  • 数据库定期备份:seed 内容 + 你后续的后台修改全部存在数据库里——用主机快照或 UpdraftPlus 类插件定期备份;主题 zip 本身就是代码备份,库丢了内容才真丢。

  • reseed 自动备份:每次在 HESU Tools 执行"重新创建演示内容",执行前自动导出预置内容快照(9 个页面含正文 + 全部 seed 新闻 + Primary/Footer 菜单结构,JSON 格式)到 wp-content/uploads/hesu-backups/,保留最近 5 份,旧文件自动清理。该目录已自动放置 .htaccess 拒绝 web 直读(Apache 生效)+ 空 index.php;nginx 不识别 .htaccess,建议在站点配置额外加一条:

    location ^~ /wp-content/uploads/hesu-backups/ { deny all; }
    

五、上线检查单(安全加固)

以下为 Step 6 站点配置的强化项,正式对外上线前逐条确认:

  • CF7 反垃圾(必配):设置 → Contact Form 7 → Integrate(集成)→ 配置 reCAPTCHA(invisible v2 或 v3),或安装蜜罐类反垃圾插件(如 "Contact Form 7 Honeypot")。实测默认表单可被脚本无限提交——不配则上线后会被垃圾提交灌爆、真实询盘被淹没。

  • 装 Flamingo:Contact Form 7 同作者官方配套插件(插件库搜 "Flamingo")。每次表单提交存库一份,防 SMTP 抖动/邮件丢失导致丢单——没收到邮件时后台还能找回。

  • SMTP 发信:WP Mail SMTP 类插件配置真实 SMTP 账号(对应 Step 6 的发信建议)。PHP mail() 在多数主机上不可靠,上线后的询盘通知全靠这一步。

  • 关闭 XML-RPC / 收紧 REST users:堵住登录名枚举与 xmlrpc 放大攻击。可用安全插件(Wordfence 等),或把以下片段粘贴到代码片段插件(推荐 WPCode,主题升级不受影响)或子主题 functions.php:

    // 关闭 XML-RPC(防 xmlrpc.php 暴力破解 / pingback 放大)
    add_filter( 'xmlrpc_enabled', '__return_false' );
    
    // 未登录请求隐藏 REST users 端点(防 /wp/v2/users 枚举登录名)
    add_filter( 'rest_endpoints', function ( $endpoints ) {
        if ( ! is_user_logged_in() ) {
            unset( $endpoints['/wp/v2/users'], $endpoints['/wp/v2/users/(?P<id>[\d]+)'] );
        }
        return $endpoints;
    } );
    

    更彻底的做法是在 web 服务器层直接封禁 xmlrpc.php(返回 403)。


六、回滚

  • 只删内容:外观 → HESU Tools 重跑(恢复出厂内容)
  • 整站回滚:切换回其它主题(如二〇二五默认主题)→ 删除 HESU 主题;seed 页面/新闻/媒体保留在库中可手动清理