SEO Title & Description
🔎 轻量级 WordPress SEO 标题与描述管理插件,支持首页 SEO、产品分类自定义 SEO Title、Taxonomy 自动回退及 SEO Meta Core 集成。
Install
The author publishes release zips, so WP-CLI can install straight from GitHub:
wp plugin install https://github.com/coowinit/seo-title-description/releases/download/v1.0.0/seo-title-description-v1.0.0.zip轻量级 WordPress SEO Title / Meta Description 管理插件。
当前稳定版本:v1.0.0
仓库名:seo-title-description
插件目录:seo-title-description
定位:负责 WordPress 企业站的 SEO Title 与 Meta Description,并可与 SEO Meta Core 组合形成轻量、清晰的 SEO 元数据架构。
1. 插件定位
本插件只处理与 Title / Meta Description 直接相关的需求,不尝试复制 Yoast SEO、Rank Math 等完整 SEO 套件。
当前负责
- 首页独立 SEO Title。
- 首页独立 Meta Description。
product_cat产品分类自定义 SEO Title。- 产品分类旧 Term Meta 数据兼容。
- 其他 Taxonomy 自动使用 Term Name / Term Description。
- Post / Page / CPT 自动解析 Title / Description。
- Archive 分页 Title。
- WordPress
title-tag与老主题兼容。 - 可选对接
SEO Meta Core的smc_title/smc_description。
当前不负责
Keywords
Focus Keyword
SEO Score
Page / Post 自定义 SEO Meta Box
所有 Taxonomy 自定义 SEO Title 字段
集中 SEO 管理列表
Quick Edit
Canonical
Open Graph / Twitter 管理
Schema
Sitemap
Robots / noindex
Redirect Manager
404 Log
AI
只有出现真实需求时,才考虑继续扩展。
2. 整体架构
WordPress Request
↓
SEO Title & Description
↓
TDK_Resolver
├─ Title
└─ Description
↓
├─ HTML <title>
├─ Meta Description
└─ SEO Meta Core(可选)
├─ Open Graph
├─ Twitter / X
└─ Schema
职责边界:
seo-title-description
→ Title / Meta Description
seo-meta-core
→ Canonical / Social / Schema / Sitemap Rules
SEO Meta Core 不是本插件的强制依赖。未安装 SEO Meta Core 时,本插件仍可独立负责标准 <title> 与 Meta Description。
3. 后台入口
启用插件后:
设置
└── SEO Title & Description
同时在:
插件 → SEO Title & Description
会显示:
设置
快捷链接,可直接进入插件设置页。
4. 首页 SEO
后台:
设置
→ SEO Title & Description
→ 首页 SEO
提供:
首页 SEO Title
首页 Meta Description
首页 Title
后台首页 SEO Title
↓ 留空
WordPress Site Name
首页 Description
后台首页 Meta Description
↓ 留空
WordPress Site Tagline
↓ 仍为空
不输出
首页属于特殊页面,建议统一在插件后台维护 SEO,不再把 <title> / Meta Description 手工写死到首页模板、header.php 或旧 seotitle.php 中。
手工填写的首页 Description 只做文本规范化,插件不会强制截断。
5. Product Category SEO Title
本插件只给:
product_cat
增加一个可选的 SEO Title 字段。
默认 Term Meta Key:
seotitle
Title 规则
自定义 SEO Title
↓ 为空
Term Name
Meta Description
Term Description
这意味着已有产品分类 SEO Title 数据可以继续使用,不需要重新录入。
6. 不同旧网站的 Meta Key
不同历史网站不一定都使用:
seotitle
后台可以直接修改:
设置
→ SEO Title & Description
→ 产品分类 SEO Title
→ Meta Key
部署到其他旧网站时,建议在原主题或插件中搜索:
get_term_meta()
update_term_meta()
并结合:
product_cat
确认真实 Term Meta Key。
注意
不要只根据 HTML input 的 name 判断数据库字段。
例如:
name="ProductCatSeotitle_fields[seotitle]"
这只是表单提交结构。真正保存到数据库的 Meta Key,需要结合 get_term_meta() / update_term_meta() 的实际代码确认。
修改插件后台的 Meta Key:
- 不会迁移旧数据。
- 不会删除旧数据。
- 只会改变插件当前读取和保存 SEO Title 使用的 Term Meta Key。
高级场景仍可通过:
tdk_product_cat_title_meta_key
Filter 覆盖最终 Meta Key。
7. 其他 Taxonomy
例如:
faq_cat
solution_cat
panorama_cat
不会额外增加 SEO Title 字段。
统一规则:
Title → Term Name
Description → Term Description
这样避免为 SEO 再维护一套与分类名称、分类描述重复的数据。
Archive 分页会自动追加:
- Page N
8. Post / Page / CPT
本插件不增加单篇 SEO Meta Box。
Title
Post / Page / CPT Title
Meta Description
Manual Excerpt
↓ 为空
Content Excerpt
自动 Description 会执行:
- 去除 Shortcode。
- 去除 HTML。
- 合并多余空白。
- 截取基础摘要长度。
当前自动摘要长度为:
160
如果未来只有少数特殊页面需要人工 SEO,不建议因此立即给所有内容类型增加新的 Meta Box,应先确认是否属于长期真实需求。
9. 页面解析规则
Title
| 页面类型 | 规则 |
|---|---|
| Front Page | 首页 SEO Title → Site Name |
| Posts Page | Posts Page Title → Site Name |
| Singular | 当前内容标题 |
product_cat |
自定义 SEO Title → Term Name |
| 其他 Taxonomy | Term Name |
| CPT Archive | Post Type Archive Title |
| Author | 作者显示名称 |
| Date Archive | 日期标题 |
| Search | Search Results |
| 404 | Page not found! |
Taxonomy、CPT Archive、Author、Date Archive 等分页页面会自动追加:
- Page N
Meta Description
| 页面类型 | 规则 |
|---|---|
| Front Page | 首页 Description → Site Tagline |
| Posts Page | Page Excerpt / Content → Site Tagline |
| Singular | Excerpt → Content Excerpt |
| Taxonomy | Term Description |
| Author | Author Description |
| Search / 404 | 不输出 |
10. 前端输出方式
支持 title-tag 的主题
WordPress 输出 <title>
插件通过 pre_get_document_title 提供最终 Title
不支持 title-tag 的老主题
插件通过 wp_head 补充 <title>
Meta Description 统一由本插件输出。
以下场景不输出 Title / Description:
Feed
Preview
Search / 404 仍提供 Title,但不输出 Meta Description。
11. 与 SEO Meta Core 的关系
如果同时启用 SEO Meta Core,本插件通过:
smc_title
smc_description
把最终 Title / Description 提供给 Core。
这样 Open Graph、Twitter / X、Schema 等模块可以继续复用统一基础 Metadata,而无需重复计算 Title / Description。
首页 Social Override
SEO Meta Core 的首页:
Social Title
Social Description
Social Image
属于社交分享人工覆盖层,因此允许:
SEO Title ≠ Social Title
SEO Description ≠ Social Description
如果 Social 字段留空,则继续使用基础 Metadata。
12. 旧主题迁移
这是将插件部署到历史网站时最重要的一步。
12.1 产品分类旧字段代码
如果主题 functions.php 中仍存在类似:
Product_cat_seotitle
product_cat_add_form_fields
product_cat_edit_form_fields
created_product_cat
edited_product_cat
启用本插件并确认历史 SEO Title 数据能够正常读取、编辑和保存后,应删除主题中的旧“产品分类自定义 SEO Title”代码。
否则可能出现:
SEO Title ← 插件
SEO Title ← functions.php 旧代码
或同一 Term Meta 被两套代码重复处理。
删除旧 PHP 代码不会删除数据库中已经保存的 Term Meta 数据。
12.2 旧 Title / Description 输出
如果主题中仍存在:
get_template_part( 'seotitle' );
或直接输出:
<title>...</title>
<meta name="description" content="...">
确认本插件输出正确后,应删除旧主题实现,避免重复 Title / Description。
推荐迁移顺序
- 安装并启用插件。
- 填写首页 SEO Title / Meta Description。
- 检查产品分类旧 SEO Title 是否正常显示。
- 新增、编辑、清空一个测试产品分类 SEO Title。
- 查看典型页面源代码,确认插件输出正确。
- 删除
functions.php中旧产品分类 SEO Title 字段代码。 - 删除旧
seotitle.php调用及其他重复 Title / Description 输出。 - 清理 WordPress、主机与 CDN 缓存。
- 再次检查源码,确认每种标签只保留一份。
13. 建议验收页面
至少抽查:
首页
普通 Page
Blog Post
Product Single
Solution Single
product_cat(有自定义 SEO Title)
product_cat(无自定义 SEO Title)
faq_cat
panorama_cat
其他 Taxonomy
Archive Page 2
Search
404
源码重点检查:
<title>
meta name="description"
og:title
og:description
twitter:title
twitter:description
最终目标:
<title> 1 份
Meta Description 0 或 1 份
og:title 1 份(启用 SEO Meta Core Social 时)
og:description 0 或 1 份
twitter:title 1 份(启用 SEO Meta Core Social 时)
twitter:description 0 或 1 份
14. 公共 API
tdk_get_title();
tdk_get_description();
tdk_get_term_title( $term );
tdk_get_term_description( $term );
主要类:
TDK_Settings
TDK_Product_Cat_Meta
TDK_Resolver
TDK_Integration
主要 Filter:
tdk_product_cat_title_meta_key
与 SEO Meta Core 的集成 Filter:
smc_title
smc_description
15. 数据保留原则
以下数据都属于人工维护数据:
首页 SEO Title
首页 Meta Description
产品分类 SEO Title
产品分类 SEO Title Meta Key 设置
禁用插件不会删除这些数据。
插件也不会因为修改 Meta Key 而自动迁移或清理旧 Term Meta。
当前版本不提供自动卸载清理逻辑。若未来确实需要“彻底清理数据”,应设计成显式、可确认的操作,而不是默认删除。
16. v1.0.0 验收结果
实站回归测试已通过:
首页 SEO Title / Description ✅ Passed
首页旧模板 SEO 迁移 ✅ Passed
Product Category 旧 seotitle 数据兼容 ✅ Passed
Product Category 新增 / 编辑 / 清空 ✅ Passed
Product Category Meta Key 设置 ✅ Passed
FAQ / Panorama / Solution Taxonomy ✅ Passed
普通 Page / Post / CPT ✅ Passed
Taxonomy Description ✅ Passed
Archive 分页 Title ✅ Passed
SEO Meta Core 集成 ✅ Passed
重复 <title> / Meta Description 检查 ✅ Passed
旧 seotitle.php 退出 ✅ Passed
插件列表“设置”快捷入口 ✅ Passed
17. v1.0.0 Final Review
- 正式版本号统一为
1.0.0。 - 增加插件列表“设置”快捷入口。
- 保留首页 SEO Title / Meta Description。
- 保留
product_cat自定义 SEO Title 与可配置 Meta Key。 - 其他 Taxonomy 使用 WordPress 原生 Term 数据。
- Post / Page / CPT 继续自动解析,不增加额外 SEO Meta Box。
- 保持与 SEO Meta Core 的轻量 Filter 集成。
- 完成旧主题
seotitle.php与产品分类旧字段代码迁移说明。 - README 按稳定版重新整理。
- 不增加与当前真实需求无关的 SEO 功能。
18. 文件结构
seo-title-description/
├─ seo-title-description.php
├─ includes/
│ ├─ class-tdk-settings.php
│ ├─ class-tdk-product-cat-meta.php
│ ├─ class-tdk-resolver.php
│ └─ class-tdk-integration.php
└─ README.md
一句话定位
SEO Title & Description:只管理 WordPress 企业站真正需要的 Title 与 Meta Description,并把复杂度留在边界之外。
Releases
1 release. Each count is every asset in that release; expand a row for the breakdown.