删除 Typecho 中未关联的标签

2024 年 5 月 23 日 星期四
/
1

删除 Typecho 中未关联的标签

前言

由于部分文章的删除,导致了博客的标签中遗留一些无用的标签,虽然在网页前端看不到,但是它实际上还是存在于数据库中,而且还被编入了索引。

例如:https://www.zcsouls.com/tag/{标签}/

因此我们可以通过操作数据库来删除这些“牛皮癣”。

操作步骤

步骤 1: 访问数据库

使用数据库管理工具(如phpMyAdmin、Adminer等)登录到你的数据库。

步骤 2: 确认标签和文章关联的表

Typecho通常使用以下两张表来存储标签和文章的信息:

  • typecho_metas:存储标签(和分类)的信息。
  • typecho_relationships:存储文章和标签(或分类)之间的关联关系。

步骤 3: 执行SQL查询

以下的SQL查询将帮助你找出没有关联任何文章的标签,并删除它们。这里的查询假设你的表前缀是 typecho_,这是Typecho的默认设置。如果你的表前缀不同,请相应修改。

DELETE FROM typecho_metas 
WHERE type = 'tag' 
AND mid NOT IN (
    SELECT mid FROM typecho_relationships
);

详细解释

  • DELETE FROM typecho_metas WHERE type = 'tag':这一部分指定要删除来自 typecho_metas表中的记录,且这些记录的类型(type)为“tag”,即标签。
  • AND mid NOT IN (SELECT mid FROM typecho_relationships):这里使用子查询来找出 typecho_relationships表中存在的所有 mid(即标签的ID)。NOT IN确保我们删除的是那些在关联表中没有出现过的标签的 mid

步骤 4: 检查和维护

  • 在执行删除操作前,可以先运行一个SELECT查询来查看将要被删除的标签: sql SELECT * FROM typecho_metas WHERE type = 'tag' AND mid NOT IN ( SELECT mid FROM typecho_relationships );
  • 确保上述查询只显示了那些确实没有被任何文章引用的标签后,再执行删除操作。

最后的提醒

操作数据库时一定要小心谨慎,确保所有操作都有备份!!!

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...