之前记录过Wordpress批量替换文章标题、文章内容的sql。
今天突然想把某个网站的文章标签也替换了,替换成有高指数的关键词。
然后用Chatgpt问了下,怎么批量修改的sql命令。
首先执行:
UPDATE wp_terms SET name = '新内容' WHERE name = '旧内容';
然后执行:
UPDATE wp_term_taxonomy SET taxonomy = REPLACE(taxonomy, '旧内容', '新内容') WHERE taxonomy LIKE '%旧内容%';
这个才是完整的,因为对于 WordPress 数据库来说,直接使用 update
语句可能不够完整,因为标签名称(name
字段)存储在 wp_terms
表中,但标签和文章的关联信息存储在 wp_term_relationships
表中。
所以,如果你只执行 UPDATE wp_terms SET name = '新内容' WHERE name = '旧内容';
这句 SQL 语句,标签名称是会被替换掉的,但是它们和文章的关联信息仍然保持不变,导致文章的标签显示不正确。
还有一种sql命令:
UPDATE wp_terms SET name = replace(name,'旧内容', '新内容');
这是直接将所有旧内容全部替换了,但是也可能会把不想替换的也替换了,相当于一步到位替换全部旧内容的标签内容。
执行前请备份数据库!!!