# B2B Trade

B2B Trade 是一个面向汽车贴膜门店的 WordPress 经典主题。主题提供服务项目、施工案例、门店介绍、常见问题和联系方式；联系页只展示电话、邮箱、WhatsApp、营业时间与地图导航，不包含提交表单、邮件发送处理器或 SMTP 依赖。

## 运行要求

- WordPress 6.8 或更高版本
- PHP 8.1 或更高版本
- 当前发布版：2.1.0
- 已针对 WordPress 7.0 系列配置回归环境

前端依赖仅包含主题内置的 Bootstrap 5.3.8 CSS 和 bundle JS。字体使用操作系统字体栈，不会向字体、脚本或样式 CDN 发起请求。

## 页面与内容结构

首页固定显示 5 个板块：

1. 首屏定位与双按钮
2. 四项信任指标
3. 服务项目（最多 6 项）
4. 案例作品（最多 6 项）
5. 联系门店行动区

关于页承载门店介绍、信任指标、环境图片、外部视频链接和服务文档。FAQ 页复用 8 项手风琴内容；联系页按配置展示门店信息和地图卡片。

主题注册：

- `service` 服务项目文章类型，归档路径 `/services/`
- `case` 案例文章类型，归档路径 `/cases/`
- `case_type` 案例分类法
- `fragrance-capability` 图片尺寸（760 × 720，硬裁切）

服务图片的显示优先级为：

1. WordPress 特色图片
2. 旧站点的 `_service_image` URL
3. 主题内置的中性 SVG 占位图

列表和首页使用 `fragrance-capability`，详情页使用 `large`。

## 首次激活

激活主题后会运行版本化且可重试的初始化：

- 创建 7 个默认服务，并使用 `_fragrance_seed_key` 防止重复；
- 创建或复用 `home`、`about`、`faq`、`contact` 页面；
- 为约定页面补齐模板，但不修改已有正文；
- 不会自动发布或恢复用户已有的草稿、私密页或回收站页面；
- 将已发布的 `home` 设置为静态首页；
- 仅在数据库写入全部成功后推进 `fragrance_trade_schema_version`。

重复激活和重复执行初始化不会增加服务或页面数量。失败信息和未发布页面状态会在后台显示管理员通知。

未分配主导航时，主题输出：首页、服务项目、案例作品、关于门店、常见问题、联系我们。已分配菜单但少于两个菜单项时，后台同样会提醒。

## 外观配置

“外观 → 自定义 → 门店首页”包含 6 个配置板块：

- 首屏定位
- 信任栏
- 门店环境与参观
- 文档支持
- 常见问题
- 联系方式与社交链接

视频链接不会嵌入页面或打开弹窗；配置后会在新标签页直接打开，并带有 `noopener noreferrer`。

地图卡片按以下顺序决定是否显示：

1. 优先使用“地图导航链接”；
2. 没有显式链接但门店地址非空时，生成百度地图导航地址；
3. 两项都为空时，隐藏地图卡片。

Hero 按钮的站内默认路径会通过 `home_url()` 解析，支持 WordPress 子目录安装与多站点路径。

## 安装

1. 将主题目录复制到 WordPress 的 `wp-content/themes/`。
2. 在“外观 → 主题”中激活 B2B Trade。
3. 在“外观 → 菜单”中创建并分配主导航；未分配时主题会显示默认导航。
4. 在“外观 → 自定义 → 门店首页”中填写真实门店信息。
5. 在服务项目和案例后台上传实际图片与内容。

发布前应在 WordPress 6.8 或更高版本、PHP 8.1 或更高版本环境中检查首页、列表、详情、关于、FAQ、联系、搜索与 404 页面，并确认桌面和移动端没有资源 404、控制台错误或横向滚动。

详细验收项见 `CODE_REVIEW_STANDARD.md`，清理范围与兼容策略见 `CODE_CLEANUP_PLAN.md`。

## 数据兼容

- 保留 `fragrance-trade` 文本域和 `fragrance_trade_*` 函数前缀。
- 保留 `store_map_url` 设置键。
- 保留 `_service_image` 只读回退，不自动改写或删除旧元数据。
- 旧的 `fragrance_trade_setup_done` 仅用于识别已有安装；新的流程以 `fragrance_trade_schema_version` 为准。
- 旧的联系页 URL 即使带有额外查询参数也能打开，但主题不再生成、读取、显示或传递服务名称。

## 许可证

主题按 GNU GPL v2 或更高版本发布。Bootstrap 5.3.8 的 MIT 许可证副本位于 `assets/vendor/bootstrap/LICENSE`。
