Files

133 lines
8.8 KiB
Markdown
Raw Permalink Normal View History

2026-08-27 11:54:26 +08:00
# 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**,建议在站点配置额外加一条:
```nginx
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:
```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 页面/新闻/媒体保留在库中可手动清理