批量修改 WordPress 标签和分类的别名slug

编辑于:2023年05月23日

批量修改 WordPress 标签和分类的别名slug

如果标签和分类别名 slug 为空,则默认将别名设为对应的名称。对于中文的标签和分类,这种设置会导致链接过长且不美观,也会影响搜索引擎如百度的收录。

1. WordPress 数据库标签和分类表

在使用著名 Web 端 MySQL 管理工具 phpMyAdmin 打开数据库时,分类和标签的基础信息存在后缀为terms的表中。一般这个表的前缀是wp,因此为 wp_terms。如果您的表前缀是其他内容,在执行下面示例中的 SQL 命令时请替换表名。

2. 批量修改标签和分类的别名

注意:修改数据库是个敏感的操作,务必在操作前备份数据库。

2.1 将别名作为数字

UPDATE wp_terms SET slug = FLOOR(RAND() * (99999999 - 10000000 + 1)) + 10000000;

2.2 将别名作为数字和字母的随机组合

UPDATE wp_terms SET slug = SUBSTRING(MD5(RAND()) FROM 1 FOR 6);

2.3 将别名设为与 term_id 相同

UPDATE wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id SET t.slug = t.term_id;

3. 批量修改标签的别名(不改分类)

注意:修改数据库是个敏感的操作,务必在操作前备份数据库。

3.1 将别名设为数字和字母的随机组合

UPDATE wp_terms SET slug = SUBSTRING(MD5(RAND()) FROM 1 FOR 6) WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE taxonomy = 'post_tag');

3.2 将别名设为随机八位数

UPDATE wp_terms SET slug = SUBSTRING(MD5(RAND()) FROM 1 FOR 8) WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE taxonomy = 'post_tag');

3.3 将别名设为与 term_id 相同

UPDATE wp_terms SET slug = term_id WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE taxonomy = 'post_tag');

4. 批量修改分类的别名(不改标签)

注意:修改数据库是个敏感的操作,务必在操作前备份数据库。

4.1 将别名设为数字和字母的随机组合

UPDATE wp_terms SET slug = SUBSTRING(MD5(RAND()) FROM 1 FOR 6) WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE taxonomy = 'category');

4.2 将别名设为随机八位数

UPDATE wp_terms SET slug = SUBSTRING(MD5(RAND()) FROM 1 FOR 8) WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE taxonomy = 'category');

4.3 将别名设为与 term_id 相同

UPDATE wp_terms SET slug = term_id WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE taxonomy = 'category');

相关推荐

暂无评论