从数据库中删除最新的Wordpress标签

时间:2011-01-05 14:24:31

标签: sql database wordpress tags

我需要你关于Wordpress mySQL查询的帮助。

场合

我正在使用WordPress 3.0.1,安装了一个“聪明的插件”,自动用标签标记我的帖子。错误地我标记了这个插件也可以标记“相关帖子”。所以最后这个插件不仅为我需要的帖子创建了好的相关标签,还为 un 相关帖子创建了很多垃圾标签。

我现在拥有的东西 - 数据库和面板中的许多标签确实需要删除。我可以在数据库中找到我要删除的WHAT TAG ID(wp_terms表,term_id字段)这些标签。

更多

我可以访问phpMyAdmin,我也知道我需要使用表中的SQL查询删除记录

  

wp_terms,wp_term_relationships和wp_term_taxonomy

此外还有像我这样的问题Mass delete unpopular Tags

帮助!

也许熟悉wordpress的人可以帮助我并编写查询以从某个term_id删除标签和所有需要的关系直到结束?

2 个答案:

答案 0 :(得分:1)

由于term_id会自动递增,您可以删除所有记录WHERE term_id大于您要保留的标记的术语ID。

DELETE FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE term_id >= [ID] );

DELETE FROM wp_term_relationships WHERE term_taxonomy_id NOT IN (SELECT term_taxonomy_id FROM wp_term_taxonomy);

将[ID]替换为您要删除的第一个术语ID。

答案 1 :(得分:1)

科里,谢谢你的帮助,你能想象......我现在才回到这个问题......

还有一次更新,也许会为某人节省一些时间。如果你想在某些ID之间从Wordpress数据库(phpmyadmin中的mySQL查询)批量删除标签,你可以执行几乎相同的SQL查询:

DELETE FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE term_id >= [FromID] AND term_id <= [ToID] );

DELETE FROM wp_term_relationships WHERE term_taxonomy_id NOT IN (SELECT term_taxonomy_id FROM wp_term_taxonomy);

只需将[FromID]替换为您要删除的标记的起始ID,将[ToID]替换为要删除的结尾标记。

因此,如果您需要从ID 231中删除标记,直到ID 1098,最终查询如下所示:

DELETE FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE term_id >= 231 AND term_id <= 1098 );

DELETE FROM wp_term_relationships WHERE term_taxonomy_id NOT IN (SELECT term_taxonomy_id FROM wp_term_taxonomy);

活得长久,繁荣!