WordPress + WooCommerce 知识图谱构建
技术支持:拓世网络技术开发部
- 文档概述
1.1 背景与目标
本档旨在为基于 WordPress + WooCommerce 的电商站点提供一套系统化、可落地的知识图谱构建方案。通过结构化数据、实体关系建模及 AI 语义搜索技术,帮助网站:
· 提升搜索引擎对产品、品牌、类目的理解,获得富摘要及知识面板展示。
· 实现站内智能推荐、语义搜索及个性化购物体验。
· 为后续引入大语言模型(LLM)或图数据库(如 Neo4j)构建企业级知识中台奠定基础。
1.2 适用读者
· WordPress 开发工程师 / 全栈工程师
· SEO 技术负责人
· 电商平台架构师
1.3 技术栈选型建议
层级 技术方案(推荐) 备选/自研
结构化数据标记 Rank Math SEO / Yoast SEO + 自定义 JSON-LD WPSSO Core
自定义字段与分类 Advanced Custom Fields (ACF) + Custom Post Type UI 手写 register_post_type
内部链接增强 Link Whisper / Internal Link Juicer 基于相关性算法的自动链接
语义搜索 SearchWP (支持自然语言) / Meilisearch Elasticsearch + 中文分词插件
AI 知识图谱引擎 WordLift + WooCommerce 扩展 自研 (LLM + 向量数据库)
向量数据库 / 图数据库 Weaviate / Neo4j (配合 WPGraphQL) Milvus / Qdrant
- 架构设计原则
2.1 三层知识图谱成熟度模型
```
┌─────────────────────────────────────────────────────────┐
│ Level 3 : AI 语义层 (向量检索 + 图数据库 + LLM 推理) │
├─────────────────────────────────────────────────────────┤
│ Level 2 : 实体关系层 (CPT + ACF + 内链 + 语义搜索) │
├─────────────────────────────────────────────────────────┤
│ Level 1 : 结构化数据层 (Schema.org + JSON-LD + 知识面板) │
└─────────────────────────────────────────────────────────┘
```
· Level 1:所有站点必须实现,为搜索引擎提供最基础的实体属性。
· Level 2:中型电商推荐,建立产品、品牌、类目、测评之间的显式关联。
· Level 3:大型或高客单价电商可选,实现个性化推荐与对话式搜索。
2.2 核心实体定义
在 WooCommerce 场景下,建议至少定义以下实体类型(参考 Schema.org):
实体类型 WordPress 对应 必填属性示例
Product product 文章类型 name, sku, image, offers, aggregateRating
Brand 产品属性 / 自定义分类 name, logo, url
Category 产品分类 name, url
Review 评论 (comment) reviewBody, reviewRating, author
Person 用户/作者 name, sameAs (社交链接)
Organization 网站设置 name, logo, contactPoint
- Level 1:结构化数据落地(零代码 / 低代码)
3.1 配置站点身份与知识面板
使用 Rank Math SEO(免费版足够):
-
进入 Rank Math → 通用设置 → 站点身份。
-
填写组织名称、Logo、电话、地址等。
-
选择 Schema 类型为 Organization 或 LocalBusiness。
效果验证:在 Google 搜索 site:你的域名,观察右侧知识面板是否显示。
3.2 产品页面 Product Schema 自动输出
Rank Math 会自动为 WooCommerce 产品输出 Product Schema,但你需确保包含以下关键字段:
· offers (价格、库存、货币)
· review (评论评分)
· aggregateRating (平均评分 + 计数)
手动补充缺失字段示例(functions.php):
```php
add_filter( 'rank_math/json_ld', function( data, jsonld ) {
if ( isset( data\['@type'\] ) \&\& data['@type'] === 'Product' ) {
global $product;
// 添加 GTIN / MPN
data\['gtin13'\] = get_post_meta( product->get_id(), '_gtin', true );
// 添加品牌
brand = wp_get_post_terms( product->get_id(), 'product_brand', array( 'fields' => 'names' ) );
if ( ! empty( $brand ) ) {
data\['brand'\] = array( '@type' =\> 'Brand', 'name' =\> brand[0] );
}
}
return $data;
}, 10, 2 );
```
3.3 面包屑 BreadcrumbList 与网站导航 Schema
确保菜单输出 BreadcrumbList 和 SiteNavigationElement。使用 Rank Math 的 Breadcrumb 模块或 Yoast 自动生成。
测试工具:
· Google Rich Results Test
· Schema.org Validator
- Level 2:实体关系构建(深度优化)
4.1 自定义内容类型(CPT)与属性分组
目的:将产品相关的技术参数、评测文章、FAQ 转化为独立实体,并与产品建立显式关系。
步骤:
-
安装 Custom Post Type UI 插件,创建 tech_spec(技术规格)和 case_study(案例研究)。
-
使用 Advanced Custom Fields 为这些 CPT 添加关联字段(例如关联到某个产品 ID)。
-
在单个产品页面中,通过 WP_Query 拉取关联的 tech_spec 和 case_study,并输出 relatedTo 属性的 JSON-LD。
示例:输出 hasPart / isRelatedTo 关系:
```php
// 在 product 页面获取关联的技术规格文章
$specs = get_posts(array(
'post_type' => 'tech_spec',
'meta_key' => 'related_product',
'meta_value' => get_the_ID(),
));
if( $specs ) {
$related_items = array();
foreach( specs as spec ) {
$related_items[] = array(
'@type' => 'TechArticle',
'name' => $spec->post_title,
'url' => get_permalink( $spec ),
);
}
// 注入到 product JSON-LD 的 'hasPart' 字段
}
```
4.2 智能内部链接策略
· 插件方案:Link Whisper -- 根据关键字自动推荐内部链接,并支持批量添加。
· 手动规范:
· 每个产品描述中至少链接到 2-3 个相关产品或分类。
· 品牌介绍页链接到所有旗下产品。
· 博客文章中提及产品参数时,必须锚文本链接到对应产品。
锚文本实体库:维护一个 Excel 表格,列出所有核心品牌词、产品系列词,写作时强制使用。
4.3 语义搜索替代默认搜索
默认 WordPress 搜索只匹配标题/内容关键字,无法理解"保暖防水男士徒步鞋"这种组合意图。
推荐方案:SearchWP
-
安装 SearchWP 后,在设置中为 product 文章类型添加权重。
-
勾选"搜索产品属性 (Attribute)"和"产品短描述"。
-
启用"模糊匹配"和"词干分析"以支持中文分词(需额外配置)。
更高级方案:集成 Meilisearch(开源)
· 使用插件 Meilisearch Search 同步 WooCommerce 产品。
· Meilisearch 天然支持中文分词、前缀搜索、错别字容错。
- Level 3:AI 知识图谱与语义搜索智能层
5.1 使用 WordLift 构建产品图谱
WordLift 是目前 WordPress 生态中最成熟的 AI 知识图谱插件,可直接为 WooCommerce 提供:
· 自动实体识别 (NER),从产品描述中提取材质、颜色、风格。
· 输出丰富 JSON-LD,包括 ItemList、Product、Offer 以及自定义关系。
· 提供可视化图谱浏览器,便于编辑实体间关系。
集成步骤:
-
购买安装 WordLift + WooCommerce 扩展。
-
连接 WordLift 账号,选择"电商"配置文件。
-
为每个产品填写 品牌、颜色、尺寸 等自定义属性(WordLift 会自动映射到 schema)。
-
启用"相关产品推荐"模块,WordLift 会基于图谱距离输出推荐。
5.2 向量搜索 + AI 推荐(自研方案)
对于数据量大、业务逻辑特殊的团队,可构建基于向量数据库的推荐引擎。
架构:
```
WooCommerce 产品 → 生成 Embedding → 存入 Weaviate → 查询相似向量 → 输出推荐
```
具体实施:
- 安装 Weaviate(Docker 一键部署):
```bash
docker run -d -p 8080:8080 --name weaviate semitechnologies/weaviate:latest
```
-
生成产品向量:使用 Python 脚本从 WordPress REST API 拉取产品数据,调用 OpenAI text-embedding-ada-002 或本地模型 BAAI/bge-large-zh 生成 1536 维向量。
-
同步至 Weaviate:
```python
import weaviate
client = weaviate.Client("http://localhost:8080")
client.data_object.create(
data_object={"name": product_name, "price": price},
class_name="Product",
vector=embedding
)
```
- 在 WordPress 中查询:通过 wp_remote_post 调用 Weaviate 的 GraphQL 接口,获取相似产品 ID 列表,然后在前端展示"看了又看"模块。
5.3 专业级图数据库(Neo4j)集成
当需要跨类型实体(产品、用户、订单、评论)进行复杂关系推理时(例如"购买 A 的用户也购买 B"),Neo4j 是最佳选择。
集成流程:
-
安装 WPGraphQL 插件,暴露 WordPress 数据的 GraphQL API。
-
编写一个中间同步服务(Node.js 或 Python),监听 WordPress hook(save_post_product),将产品、分类、标签、订单记录写入 Neo4j。
-
Neo4j Cypher 查询示例(推荐产品):
```cypher
MATCH (u:User)-[:PURCHASED]->(p:Product {id: $current_product})
MATCH (u)-[:PURCHASED]->(rec:Product)
WHERE rec.id <> $current_product
RETURN rec.id, count(*) as freq
ORDER BY freq DESC LIMIT 6
```
- 在 WordPress 侧通过 AJAX 调用 Neo4j 查询接口,动态渲染推荐组件。
- 输出与验证
6.1 知识图谱可视化工具
· WordLift Dashboard:内置知识图谱浏览器。
· Neo4j Browser:可直接运行 Cypher 查看实体关系网络。
· Google Search Console:查看富结果报告,监控结构化数据覆盖率。
6.2 性能与维护注意事项
· 缓存策略:结构化数据输出应保留在页面源码中(而非 AJAX 动态加载),避免 Googlebot 无法抓取。
· 更新机制:当产品价格或库存变化时,务必同步更新 JSON-LD 中的 offers.availability 和 price。
· 多语言站点:若使用 WPML 或 Polylang,需确保每套语言输出对应的 inLanguage 属性。
- 附录:关键代码片段
7.1 在 <head> 中输出自定义 JSON-LD
```php
add_action( 'wp_head', function() {
if ( is_singular( 'product' ) ) {
$custom_ld = array(
'@context' => 'https://schema.org',
'@type' => 'Product',
'name' => get_the_title(),
'sku' => get_post_meta( get_the_ID(), '_sku', true ),
'mpn' => get_post_meta( get_the_ID(), '_mpn', true ),
);
echo '<script type="application/ld+json">' . wp_json_encode( $custom_ld, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE ) . '</script>';
}
} );
```
7.2 使用 ACF 关联产品与测评文章
-
在 case_study 编辑页添加一个关系字段 related_products,类型为 post_object,允许选择多个产品。
-
在案例文章单页中输出 mentions 关系:
```php
$related_products = get_field( 'related_products' );
if ( $related_products ) {
$mentions = array();
foreach ( related_products as product_post ) {
$mentions[] = array(
'@type' => 'Product',
'name' => $product_post->post_title,
'url' => get_permalink( $product_post ),
);
}
// 合并到主 Article 的 'mentions' 字段
}
```
- 总结与演进路线图
阶段 任务 预估工作量 预期收益
第1周 安装 Rank Math,配置基础 Schema,通过富结果测试 1人日 搜索结果出现价格、评分星星
第2-3周 建立 ACF 自定义字段,关联产品与规格/案例,优化内链 3人日 站内停留时间增加,收录提升
第4周 部署 SearchWP 或 Meilisearch,替换默认搜索 1人日 搜索转化率提升 10-20%
第5-8周 (可选)集成 WordLift 或自研向量推荐 5-10人日 个性化推荐带来交叉销售增长
长期 根据数据量评估是否引入 Neo4j 图数据库 2-4 人周 实现"用户画像 + 商品图谱"高级 BI
通过以上分层实施,你的 WooCommerce 商店将从一个简单的产品目录进化为具备语义理解能力的智能电商系统,为后续接入 ChatGPT 购物助手等 AI 应用打下坚实的数据基础。