# B2B Trade 发布审查标准 适用范围:B2B Trade 2.1.x,WordPress 6.8+,PHP 8.1+。 ## 1. 自动检查 每次发布必须满足: - `git diff --check` 无输出; - 所有 PHP 文件在 PHP 8.1 CLI 下通过 `php -l`; - PHPCS 通过 WordPress Coding Standards 与 PHPCompatibilityWP; - `node --check assets/js/theme.js` 通过; - CSS 花括号配对,所有 `url(...)` 本地资源存在; - PHP、CSS 和 JS 不包含脚本、样式或字体 CDN 请求; - 主题引用的本地静态资源全部存在; - 仓库不包含已清退的旧业务词、旧视频弹窗库或旧产品位图。 ## 2. 初始化与数据安全 在空数据库中: 1. 安装 WordPress 并激活主题; 2. 确认创建 7 个带种子标识的服务; 3. 确认创建 `home`、`about`、`faq`、`contact`; 4. 再运行两次初始化; 5. 确认服务数和页面数不增加; 6. 确认 `fragrance_trade_schema_version` 仅在无错误时推进。 在已有数据库中: - 已有页面正文、标题和状态不被覆盖; - 草稿、私密或回收站页面不被自动发布; - 对应页面模板被补齐; - 后台显示非发布状态提醒; - 已有 `_service_image` 和 `store_map_url` 保持有效。 需要注入一次 `wp_insert_post()` 错误,确认错误被记录、管理员可见且迁移版本不推进。 ## 3. 页面冒烟 以下页面必须返回预期状态,并且 PHP 日志无 Warning、Deprecated、Parse 或 Fatal: | 页面 | 预期 | | --- | --- | | 首页 | 200 | | 服务列表 | 200 | | 服务详情 | 200 | | 案例列表 | 200 | | 案例详情 | 200 | | 关于门店 | 200 | | 常见问题 | 200 | | 联系我们 | 200 | | 普通文章 | 200 | | 搜索结果 | 200 | | 不存在路径 | 404 | 浏览器控制台不得出现 JavaScript 错误,Network 面板不得出现主题资源 404。 ## 4. 业务分支 ### 服务图片 分别构造并确认: 1. 有特色图片时优先显示特色图片; 2. 无特色图片、有 `_service_image` 时显示旧 URL; 3. 两者都没有时显示对应 SVG 占位图; 4. 首页和列表输出 `fragrance-capability`; 5. 详情输出 `large`。 ### 地图 分别确认: 1. 显式地图 URL 优先于地址; 2. 只有地址时生成百度地图导航; 3. 地址和 URL 都为空时不渲染地图卡片; 4. 页面不出现任何硬编码门店地址。 ### 导航 - 未分配菜单时输出 6 项默认导航; - 少于两个菜单项时后台显示提醒; - 桌面导航与移动 Offcanvas 均可键盘操作; - 当前菜单不会造成横向滚动。 ### 视频与 FAQ - 有视频 URL 时只产生普通新窗口链接; - 链接包含 `target="_blank"` 与 `rel="noopener noreferrer"`; - 无视频 URL 时显示联系门店入口; - FAQ 手风琴可点击和键盘操作,ARIA 状态随展开更新。 ### 联系 - 联系页不存在提交表单; - 服务入口不生成服务查询参数; - 电话、邮箱与 WhatsApp 链接按配置显示; - 主题不注册前端提交或邮件发送 Hook。 ## 5. 兼容矩阵 至少完成: | 环境 | 用途 | | --- | --- | | WordPress 7.0 系列 + PHP 8.3 | 当前版本主回归 | | WordPress 6.8 系列 + PHP 8.2 | 最低 WordPress 分支 | | PHP 8.1 CLI | 最低 PHP 语法检查 | 兼容环境可由维护者现有的 WordPress 测试站点提供,不要求主题仓库附带容器配置。 ## 6. 视觉与无障碍 桌面至少检查 1440 × 1000,移动至少检查 390 × 844: - 首页、服务列表、服务详情、案例列表、关于、FAQ、联系; - 无水平滚动、布局跳动、遮挡或断裂; - 图片具有明确尺寸与替代文本; - 可交互元素有可见焦点; - 文本与背景保持可读对比度; - Offcanvas 打开后焦点可进入,关闭后可返回触发按钮; - 新窗口链接的可访问名称能表达用途。 主题预览图必须来自通过桌面验收的中性演示首页,不得包含过时业务内容、品牌承诺或虚构真实门店照片。 ## 7. 发布元数据 发布前确认 `style.css`: - `Version: 2.1.0` - `Requires at least: 6.8` - `Tested up to: 7.0` - `Requires PHP: 8.1` - Theme URI 指向实际仓库 - 文本域为 `fragrance-trade` 同时确认 `languages/fragrance-trade.pot` 已按当前源码重新生成,本地 Bootstrap 许可证随主题包发布。