例:想在wordpress里再添加分类,目前wp_terms表的term_id是从5开始的了,现想新加四个分类(AAA、BBB、CCC、DDD)且插入对应的term_id为1、2、3、4; 如果直接从系统后台添加的话,它的id直接是从124开始了,所以得用mysql强行插入法。
WordPress 的默认 wp_terms 表使用 AUTO_INCREMENT 来自动管理 term_id,因此系统会从当前最大 ID +1 插入新项(在你这张图中是从 124 开始)。这是不能从后台正常操作插入指定 ID 的 term,但你可以通过 SQL 语句手动插入,并绕过 AUTO_INCREMENT 限制。不过,你还需要同时插入到以下几个表中:
wp_terms(主分类表)
wp_term_taxonomy(指定分类/标签用途)
(可选)wp_termmeta(元信息)
第 1 步:手动插入 wp_terms 表(使用指定 ID)
1 2 3 4 5 |
INSERT INTO wp_terms (term_id, name, slug, term_group) VALUES (1, 'AAA', 'aaa', 0), (2, 'BBB', 'bbb', 0), (3, 'CCC', 'ccc', 0), (4, 'DDD', 'ddd', 0); |
第 2 步:插入 wp_term_taxonomy 表(指定是分类 category)
1 2 3 4 5 |
INSERT INTO wp_term_taxonomy (term_id, taxonomy, description, parent, count) VALUES (1, 'category', '', 0, 0), (2, 'category', '', 0, 0), (3, 'category', '', 0, 0), (4, 'category', '', 0, 0); |
第 3 步(可选):如果你站点开启了 termmeta 功能,可插入元数据(略过可跳)
1 2 3 4 |
-- 示例,不是必须 INSERT INTO wp_termmeta (term_id, meta_key, meta_value) VALUES (1, '_category_color', '#ff0000'), (2, '_category_color', '#00ff00'); |
请先备份数据库!
如果 term_id 为 1-4 已存在(某些系统会预留),插入会失败,请用 DELETE FROM wp_terms WHERE term_id IN (1,2,3,4) 清理。
插入完成后,进入后台“分类目录”查看是否显示正常。
插入完毕后,如果 AUTO_INCREMENT 的值小于 151,系统可能会报错,你需要手动重置 AUTO_INCREMENT:
1 |
ALTER TABLE wp_terms AUTO_INCREMENT = 151; |