{"id":3609,"date":"2025-12-23T21:44:05","date_gmt":"2025-12-24T03:44:05","guid":{"rendered":"https:\/\/ykim.synology.me\/wordpress\/?p=3609"},"modified":"2025-12-25T20:31:08","modified_gmt":"2025-12-26T02:31:08","slug":"slug-uniqueness-in-wordpress","status":"publish","type":"post","link":"https:\/\/ykim.synology.me\/wordpress\/slug-uniqueness-in-wordpress-3609\/","title":{"rendered":"Slug Uniqueness in WordPress: Problem Solving"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">The Slug Uniqueness<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>In WordPress\u2019s data structure, a single slug must correspond to only one term_id.<\/li>\n\n\n\n<li class=\"has-theme-palette-13-color has-text-color has-link-color wp-elements-988988d8337ea2716311b9d9e174877f\"><strong>Slugs and names for pages, posts, forums, topics, and code\u2011snippet types must be unique.<\/strong><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Grouped-Slug Count in \u201cwp_terms\u201d Table<\/h2>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>SELECT slug, COUNT(*)\nFROM wp_terms\nGROUP BY slug\nHAVING COUNT(*) > 1;<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D73A49\">SELECT<\/span><span style=\"color: #24292E\"> slug, <\/span><span style=\"color: #005CC5\">COUNT<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #D73A49\">*<\/span><span style=\"color: #24292E\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">FROM<\/span><span style=\"color: #24292E\"> wp_terms<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">GROUP BY<\/span><span style=\"color: #24292E\"> slug<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">HAVING<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">COUNT<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #D73A49\">*<\/span><span style=\"color: #24292E\">) <\/span><span style=\"color: #D73A49\">&gt;<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">1<\/span><span style=\"color: #24292E\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"173\" height=\"121\" src=\"https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-1.png\" alt=\"\" class=\"wp-image-3650\"\/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">If you group by slug and the count is 2 or more, it means different term_id values exist that share the same slug.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Slug \u201cterm_id\u201c in \u201cwp_terms\u201c<\/h2>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>SELECT term_id, name, slug\nFROM wp_terms\nWHERE name IN ('interview', 'liberal-arts', 'wordpress', 'yield');<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D73A49\">SELECT<\/span><span style=\"color: #24292E\"> term_id, <\/span><span style=\"color: #D73A49\">name<\/span><span style=\"color: #24292E\">, slug<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">FROM<\/span><span style=\"color: #24292E\"> wp_terms<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">WHERE<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">name<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">IN<\/span><span style=\"color: #24292E\"> (<\/span><span style=\"color: #032F62\">&#39;interview&#39;<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #032F62\">&#39;liberal-arts&#39;<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #032F62\">&#39;wordpress&#39;<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #032F62\">&#39;yield&#39;<\/span><span style=\"color: #24292E\">);<\/span><\/span><\/code><\/pre><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"483\" height=\"220\" src=\"https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-2.png\" alt=\"\" class=\"wp-image-3651\" srcset=\"https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-2.png 483w, https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-2-300x137.png 300w\" sizes=\"auto, (max-width: 483px) 100vw, 483px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">The \u2018interview\u2019 slug is duplicated under term_id 257 and 262, \u2018wordpress\u2019 is duplicated under 59 and 267, and \u2018yield\u2019 is duplicated under 258 and 259.<br>The reason the \u2018liberal-arts\u2019 slug does not appear is that the search was performed only on wp_terms, so the search needs to be expanded to additional tables.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Duplicated Slug Locations<\/h2>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>-- 1. \ubd84\ub958 \ud56d\ubaa9(Terms) \uc870\ud68c\nSELECT\n  t.slug,\n  t.term_id AS id_or_postid,\n  tt.taxonomy AS type,\n  tt.count AS count_or_status\nFROM wp_terms t\nINNER JOIN wp_term_taxonomy tt ON t.term_id = tt.term_id\nWHERE t.slug IN ('interview', 'liberal-arts', 'wordpress', 'yield')\n\nUNION ALL\n\n-- 2. \ud398\uc774\uc9c0 \ubc0f \ud3ec\uc2a4\ud2b8(Posts) \uc870\ud68c\nSELECT\n  post_name AS slug,\n  ID AS id_or_postid,\n  post_type AS type,\n  post_status AS count_or_status\nFROM wp_posts\nWHERE post_name IN ('interview', 'liberal-arts', 'wordpress', 'yield')\nAND post_status NOT IN ('inherit', 'trash') -- \uc790\ub3d9 \uc800\uc7a5 \ubc0f \ud734\uc9c0\ud1b5 \uc81c\uc678\n\nORDER BY slug ASC;<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">-- 1. \ubd84\ub958 \ud56d\ubaa9(Terms) \uc870\ud68c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">SELECT<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">  <\/span><span style=\"color: #005CC5\">t<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">slug<\/span><span style=\"color: #24292E\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">  <\/span><span style=\"color: #005CC5\">t<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">term_id<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">AS<\/span><span style=\"color: #24292E\"> id_or_postid,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">  <\/span><span style=\"color: #005CC5\">tt<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">taxonomy<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">AS<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">type<\/span><span style=\"color: #24292E\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">  <\/span><span style=\"color: #005CC5\">tt<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">count<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">AS<\/span><span style=\"color: #24292E\"> count_or_status<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">FROM<\/span><span style=\"color: #24292E\"> wp_terms t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">INNER JOIN<\/span><span style=\"color: #24292E\"> wp_term_taxonomy tt <\/span><span style=\"color: #D73A49\">ON<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">t<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">term_id<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">tt<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">term_id<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">WHERE<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">t<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">slug<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">IN<\/span><span style=\"color: #24292E\"> (<\/span><span style=\"color: #032F62\">&#39;interview&#39;<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #032F62\">&#39;liberal-arts&#39;<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #032F62\">&#39;wordpress&#39;<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #032F62\">&#39;yield&#39;<\/span><span style=\"color: #24292E\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">UNION ALL<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">-- 2. \ud398\uc774\uc9c0 \ubc0f \ud3ec\uc2a4\ud2b8(Posts) \uc870\ud68c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">SELECT<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">  post_name <\/span><span style=\"color: #D73A49\">AS<\/span><span style=\"color: #24292E\"> slug,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">  ID <\/span><span style=\"color: #D73A49\">AS<\/span><span style=\"color: #24292E\"> id_or_postid,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">  post_type <\/span><span style=\"color: #D73A49\">AS<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">type<\/span><span style=\"color: #24292E\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">  post_status <\/span><span style=\"color: #D73A49\">AS<\/span><span style=\"color: #24292E\"> count_or_status<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">FROM<\/span><span style=\"color: #24292E\"> wp_posts<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">WHERE<\/span><span style=\"color: #24292E\"> post_name <\/span><span style=\"color: #D73A49\">IN<\/span><span style=\"color: #24292E\"> (<\/span><span style=\"color: #032F62\">&#39;interview&#39;<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #032F62\">&#39;liberal-arts&#39;<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #032F62\">&#39;wordpress&#39;<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #032F62\">&#39;yield&#39;<\/span><span style=\"color: #24292E\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">AND<\/span><span style=\"color: #24292E\"> post_status <\/span><span style=\"color: #D73A49\">NOT<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">IN<\/span><span style=\"color: #24292E\"> (<\/span><span style=\"color: #032F62\">&#39;inherit&#39;<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #032F62\">&#39;trash&#39;<\/span><span style=\"color: #24292E\">) <\/span><span style=\"color: #6A737D\">-- \uc790\ub3d9 \uc800\uc7a5 \ubc0f \ud734\uc9c0\ud1b5 \uc81c\uc678<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">ORDER BY<\/span><span style=\"color: #24292E\"> slug <\/span><span style=\"color: #D73A49\">ASC<\/span><span style=\"color: #24292E\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"462\" height=\"290\" src=\"https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-3.png\" alt=\"\" class=\"wp-image-3652\" srcset=\"https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-3.png 462w, https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-3-300x188.png 300w\" sizes=\"auto, (max-width: 462px) 100vw, 462px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">+ Page slug collisions do not occur because the permalink structure (<strong>\/%postname%-%post_id%\/<\/strong>) includes the page ID, preventing duplicates.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Page and Post Titles<\/h2>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>SELECT\n  t.term_id,\n  t.slug,\n  tt.term_taxonomy_id,\n  tt.taxonomy,\n  p.ID AS post_id,\n  p.post_title,\n  p.post_type,\n  p.post_status\nFROM wp_terms t\nINNER JOIN wp_term_taxonomy tt ON t.term_id = tt.term_id\nINNER JOIN wp_term_relationships tr ON tt.term_taxonomy_id = tr.term_taxonomy_id\nINNER JOIN wp_posts p ON tr.object_id = p.ID\nWHERE t.term_id IN (262, 170, 8, 267, 59, 259, 257)\nORDER BY t.term_id, p.post_date DESC;<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D73A49\">SELECT<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">  <\/span><span style=\"color: #005CC5\">t<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">term_id<\/span><span style=\"color: #24292E\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">  <\/span><span style=\"color: #005CC5\">t<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">slug<\/span><span style=\"color: #24292E\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">  <\/span><span style=\"color: #005CC5\">tt<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">term_taxonomy_id<\/span><span style=\"color: #24292E\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">  <\/span><span style=\"color: #005CC5\">tt<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">taxonomy<\/span><span style=\"color: #24292E\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">  <\/span><span style=\"color: #005CC5\">p<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">ID<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">AS<\/span><span style=\"color: #24292E\"> post_id,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">  <\/span><span style=\"color: #005CC5\">p<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">post_title<\/span><span style=\"color: #24292E\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">  <\/span><span style=\"color: #005CC5\">p<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">post_type<\/span><span style=\"color: #24292E\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">  <\/span><span style=\"color: #005CC5\">p<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">post_status<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">FROM<\/span><span style=\"color: #24292E\"> wp_terms t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">INNER JOIN<\/span><span style=\"color: #24292E\"> wp_term_taxonomy tt <\/span><span style=\"color: #D73A49\">ON<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">t<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">term_id<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">tt<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">term_id<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">INNER JOIN<\/span><span style=\"color: #24292E\"> wp_term_relationships tr <\/span><span style=\"color: #D73A49\">ON<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">tt<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">term_taxonomy_id<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">tr<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">term_taxonomy_id<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">INNER JOIN<\/span><span style=\"color: #24292E\"> wp_posts p <\/span><span style=\"color: #D73A49\">ON<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">tr<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">object_id<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">p<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">ID<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">WHERE<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">t<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">term_id<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">IN<\/span><span style=\"color: #24292E\"> (<\/span><span style=\"color: #005CC5\">262<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #005CC5\">170<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #005CC5\">8<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #005CC5\">267<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #005CC5\">59<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #005CC5\">259<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #005CC5\">257<\/span><span style=\"color: #24292E\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">ORDER BY<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">t<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">term_id<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #005CC5\">p<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">post_date<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">DESC<\/span><span style=\"color: #24292E\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"400\" src=\"https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-4-post_title-1024x400.png\" alt=\"\" class=\"wp-image-3653\" srcset=\"https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-4-post_title-1024x400.png 1024w, https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-4-post_title-300x117.png 300w, https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-4-post_title-768x300.png 768w, https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-4-post_title.png 1095w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<ul class=\"wp-block-list\">\n<li>WordPress (ID 59): This term is correctly linked as a post_tag to 12 posts (IDs 1342, 1334, etc.). It is the most actively used data.<\/li>\n\n\n\n<li>Liberal Arts (ID 170): This term is linked as a topic-tag to one post (ID 2199).<\/li>\n\n\n\n<li>Error Data (ID 259, 262, 267): These three IDs have invalid taxonomy information (their term_taxonomy_id is 0). If you only modify the terms or taxonomy without deleting the relationships linked to ID 0, you&#8217;ll encounter a &#8216;zombie&#8217; issue. If a new category is accidentally assigned the ID 0, it will automatically reconnect to your old posts (like Post 229), causing ghost relationships to reappear<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Problem Solving<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You must first break the abnormal connections in wp_term_relationships, and then delete the ghost entries.<\/p>\n\n\n<style>.kadence-column3609_69426c-e9 > .kt-inside-inner-col{padding-left:var(--global-kb-spacing-sm, 1.5rem);}.kadence-column3609_69426c-e9 > .kt-inside-inner-col,.kadence-column3609_69426c-e9 > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column3609_69426c-e9 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column3609_69426c-e9 > .kt-inside-inner-col{flex-direction:column;}.kadence-column3609_69426c-e9 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column3609_69426c-e9 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column3609_69426c-e9{position:relative;}@media all and (max-width: 1024px){.kadence-column3609_69426c-e9 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column3609_69426c-e9 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column3609_69426c-e9\"><div class=\"kt-inside-inner-col\">\n<h5 class=\"wp-block-heading\">Step 1: Delete Abnormal Post Connections<\/h5>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Remove the incorrect category relationships for yield, interview, and WordPress that are erroneously linked to Post ID 229.<\/li>\n\n\n\n<li>Specifically, target the relationships associated with IDs 259, 262, and 267.<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>DELETE FROM wp_term_relationships\nWHERE object_id = 229 AND term_taxonomy_id IN (\n   SELECT term_taxonomy_id FROM wp_term_taxonomy WHERE term_id IN (259, 262, 267)\n);<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D73A49\">DELETE<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">FROM<\/span><span style=\"color: #24292E\"> wp_term_relationships<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">WHERE<\/span><span style=\"color: #24292E\"> object_id <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">229<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">AND<\/span><span style=\"color: #24292E\"> term_taxonomy_id <\/span><span style=\"color: #D73A49\">IN<\/span><span style=\"color: #24292E\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">   <\/span><span style=\"color: #D73A49\">SELECT<\/span><span style=\"color: #24292E\"> term_taxonomy_id <\/span><span style=\"color: #D73A49\">FROM<\/span><span style=\"color: #24292E\"> wp_term_taxonomy <\/span><span style=\"color: #D73A49\">WHERE<\/span><span style=\"color: #24292E\"> term_id <\/span><span style=\"color: #D73A49\">IN<\/span><span style=\"color: #24292E\"> (<\/span><span style=\"color: #005CC5\">259<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #005CC5\">262<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #005CC5\">267<\/span><span style=\"color: #24292E\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">);<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h5 class=\"wp-block-heading\">Step 2: Delete Ghost Categories and Tags<\/h5>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Delete the IDs where the data is corrupted or where the post_count appears to be 0 in the database.<\/li>\n\n\n\n<li>Target IDs include 8, 262, and 267.<\/li>\n\n\n\n<li>Note: ID 259 (yield) is to be used as a category.<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>-- 1. Taxonomy \uad00\uacc4 \uc0ad\uc81c\nDELETE FROM wp_term_taxonomy WHERE term_id IN (8, 262, 267);\n\n-- 2. Term \uc815\ubcf4 \uc0ad\uc81c\nDELETE FROM wp_terms WHERE term_id IN (8, 262, 267);<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">-- 1. Taxonomy \uad00\uacc4 \uc0ad\uc81c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">DELETE<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">FROM<\/span><span style=\"color: #24292E\"> wp_term_taxonomy <\/span><span style=\"color: #D73A49\">WHERE<\/span><span style=\"color: #24292E\"> term_id <\/span><span style=\"color: #D73A49\">IN<\/span><span style=\"color: #24292E\"> (<\/span><span style=\"color: #005CC5\">8<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #005CC5\">262<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #005CC5\">267<\/span><span style=\"color: #24292E\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">-- 2. Term \uc815\ubcf4 \uc0ad\uc81c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">DELETE<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">FROM<\/span><span style=\"color: #24292E\"> wp_terms <\/span><span style=\"color: #D73A49\">WHERE<\/span><span style=\"color: #24292E\"> term_id <\/span><span style=\"color: #D73A49\">IN<\/span><span style=\"color: #24292E\"> (<\/span><span style=\"color: #005CC5\">8<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #005CC5\">262<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #005CC5\">267<\/span><span style=\"color: #24292E\">);<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h5 class=\"wp-block-heading\">Step 3: Delete Isolated Ghost Entries with Missing Taxonomy<\/h5>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Clean up &#8220;residue&#8221; data like ID 257, which exists in the wp_terms table but has no corresponding entry in wp_term_taxonomy.<\/li>\n\n\n\n<li>This step ensures the removal of orphaned terms that no longer have a defined purpose (category, tag, etc.) in the system<\/li>\n<\/ul>\n\n\n<style>.kadence-column3609_5df72a-53 > .kt-inside-inner-col{padding-left:var(--global-kb-spacing-md, 2rem);}.kadence-column3609_5df72a-53 > .kt-inside-inner-col,.kadence-column3609_5df72a-53 > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column3609_5df72a-53 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column3609_5df72a-53 > .kt-inside-inner-col{flex-direction:column;}.kadence-column3609_5df72a-53 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column3609_5df72a-53 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column3609_5df72a-53{position:relative;}@media all and (max-width: 1024px){.kadence-column3609_5df72a-53 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column3609_5df72a-53 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column3609_5df72a-53\"><div class=\"kt-inside-inner-col\">\n<h6 class=\"wp-block-heading\">3.1 NOT IN Method<\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">This query identifies all &#8220;ghost&#8221; categories that exist in the wp_terms table but are not appearing on the dashboard due to broken links with wp_term_taxonomy.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>DELETE FROM wp_terms\nWHERE term_id NOT IN (SELECT term_id FROM wp_term_taxonomy);<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D73A49\">DELETE<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">FROM<\/span><span style=\"color: #24292E\"> wp_terms<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">WHERE<\/span><span style=\"color: #24292E\"> term_id <\/span><span style=\"color: #D73A49\">NOT<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">IN<\/span><span style=\"color: #24292E\"> (<\/span><span style=\"color: #D73A49\">SELECT<\/span><span style=\"color: #24292E\"> term_id <\/span><span style=\"color: #D73A49\">FROM<\/span><span style=\"color: #24292E\"> wp_term_taxonomy);<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">When processing a NOT IN clause, the database engine may be inefficient because it must internally scan every value in the subquery first. Furthermore, if the term_id column in the wp_term_taxonomy table contains even a single NULL value, the NOT IN condition may return an empty result, failing to delete or identify anything at all due to SQL&#8217;s three-valued logic.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">3.2 LEFT JOIN \u2026 IS NULL Method<\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">To avoid the issues mentioned above, using a LEFT JOIN is the industry standard for performance and reliability.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>DELETE FROM wp_terms\nWHERE term_id IN (\n    SELECT t.term_id FROM wp_terms t LEFT JOIN wp_term_taxonomy tt ON t.term_id = tt.term_id \n    WHERE tt.term_id IS NULL\n);<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D73A49\">DELETE<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">FROM<\/span><span style=\"color: #24292E\"> wp_terms<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">WHERE<\/span><span style=\"color: #24292E\"> term_id <\/span><span style=\"color: #D73A49\">IN<\/span><span style=\"color: #24292E\"> (<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #D73A49\">SELECT<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">t<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">term_id<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">FROM<\/span><span style=\"color: #24292E\"> wp_terms t <\/span><span style=\"color: #D73A49\">LEFT JOIN<\/span><span style=\"color: #24292E\"> wp_term_taxonomy tt <\/span><span style=\"color: #D73A49\">ON<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">t<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">term_id<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">tt<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">term_id<\/span><span style=\"color: #24292E\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #D73A49\">WHERE<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">tt<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">term_id<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">IS<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">NULL<\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">);<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">You can check the ghost category IDs in advance using the query below.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>SELECT t.term_id, t.name, t.slug\nFROM wp_terms t\nLEFT JOIN wp_term_taxonomy tt ON t.term_id = tt.term_id\nWHERE tt.term_id IS NULL;<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D73A49\">SELECT<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">t<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">term_id<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #005CC5\">t<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">name<\/span><span style=\"color: #24292E\">, <\/span><span style=\"color: #005CC5\">t<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">slug<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">FROM<\/span><span style=\"color: #24292E\"> wp_terms t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">LEFT JOIN<\/span><span style=\"color: #24292E\"> wp_term_taxonomy tt <\/span><span style=\"color: #D73A49\">ON<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">t<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">term_id<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">tt<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">term_id<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">WHERE<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">tt<\/span><span style=\"color: #24292E\">.<\/span><span style=\"color: #005CC5\">term_id<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">IS<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">NULL<\/span><span style=\"color: #24292E\">;<\/span><\/span><\/code><\/pre><\/div>\n<\/div><\/div>\n\n\n\n<h5 class=\"wp-block-heading\">Step 4: Permalink Update<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">Go to WordPress Admin &gt; Settings &gt; Permalinks and click [Save Changes] at the bottom (<strong>click the button without making any modifications<\/strong>). This will rebuild the slug rules.<\/p>\n<\/div><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Check<\/h2>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>SELECT 'wp_terms' AS table_name, term_id, COUNT(*) AS duplicate_count FROM wp_terms \n    GROUP BY term_id HAVING COUNT(*) > 1\n\nUNION ALL\n\nSELECT 'wp_term_taxonomy' AS table_name, term_id, COUNT(*) AS duplicate_count FROM wp_term_taxonomy \n    GROUP BY term_id HAVING COUNT(*) > 1;<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D73A49\">SELECT<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&#39;wp_terms&#39;<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">AS<\/span><span style=\"color: #24292E\"> table_name, term_id, <\/span><span style=\"color: #005CC5\">COUNT<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #D73A49\">*<\/span><span style=\"color: #24292E\">) <\/span><span style=\"color: #D73A49\">AS<\/span><span style=\"color: #24292E\"> duplicate_count <\/span><span style=\"color: #D73A49\">FROM<\/span><span style=\"color: #24292E\"> wp_terms <\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #D73A49\">GROUP BY<\/span><span style=\"color: #24292E\"> term_id <\/span><span style=\"color: #D73A49\">HAVING<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">COUNT<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #D73A49\">*<\/span><span style=\"color: #24292E\">) <\/span><span style=\"color: #D73A49\">&gt;<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">1<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">UNION ALL<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">SELECT<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&#39;wp_term_taxonomy&#39;<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">AS<\/span><span style=\"color: #24292E\"> table_name, term_id, <\/span><span style=\"color: #005CC5\">COUNT<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #D73A49\">*<\/span><span style=\"color: #24292E\">) <\/span><span style=\"color: #D73A49\">AS<\/span><span style=\"color: #24292E\"> duplicate_count <\/span><span style=\"color: #D73A49\">FROM<\/span><span style=\"color: #24292E\"> wp_term_taxonomy <\/span><\/span>\n<span class=\"line\"><span style=\"color: #24292E\">    <\/span><span style=\"color: #D73A49\">GROUP BY<\/span><span style=\"color: #24292E\"> term_id <\/span><span style=\"color: #D73A49\">HAVING<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">COUNT<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #D73A49\">*<\/span><span style=\"color: #24292E\">) <\/span><span style=\"color: #D73A49\">&gt;<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">1<\/span><span style=\"color: #24292E\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"574\" height=\"28\" src=\"https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-5-My-SQL-returned-an-empty-result-set.png\" alt=\"\" class=\"wp-image-3654\" srcset=\"https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-5-My-SQL-returned-an-empty-result-set.png 574w, https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-5-My-SQL-returned-an-empty-result-set-300x15.png 300w\" sizes=\"auto, (max-width: 574px) 100vw, 574px\" \/><\/figure>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Hedge<\/h2>\n\n\n\n<h5 class=\"wp-block-heading\">\ud83d\udccdIntegrated Integrity Check<\/h5>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Database integrity should be checked periodically.<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\/* 1. wp_terms \ud14c\uc774\ube14 \ub0b4 \uc2ac\ub7ec\uadf8 \uc911\ubcf5 \ud655\uc778 *\/ \nSELECT 'Duplicate Slug' AS Issue, slug, COUNT(*) AS Count\nFROM wp_terms\nGROUP BY slug\nHAVING COUNT(*) > 1\n\nUNION ALL\n\n\/* 2. wp_terms \ud14c\uc774\ube14 \ub0b4 term_id \uc911\ubcf5 \ud655\uc778 *\/\nSELECT 'Duplicate Term ID (Terms)' AS Issue, term_id, COUNT(*) AS Count\nFROM wp_terms\nGROUP BY term_id\nHAVING COUNT(*) > 1\n\nUNION ALL\n\n\/* 3. wp_term_taxonomy \ud14c\uc774\ube14 \ub0b4 term_id \uc911\ubcf5 \ud655\uc778 *\/\nSELECT 'Duplicate Term ID (Taxonomy)' AS Issue, term_id, COUNT(*) AS Count\nFROM wp_term_taxonomy\nGROUP BY term_id\nHAVING COUNT(*) > 1\n\nUNION ALL\n\n\/* 4. \uad00\uacc4\uac00 \ub04a\uae34 \uc720\ub839 \ub370\uc774\ud130 \ud655\uc778 (wp_term_taxonomy\uc5d0 \uc5c6\ub294 terms) *\/\nSELECT 'Orphaned Term (No Taxonomy)' AS Issue, term_id, slug AS Count\nFROM wp_terms\nWHERE term_id NOT IN (SELECT term_id FROM wp_term_taxonomy);<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">\/* 1. wp_terms \ud14c\uc774\ube14 \ub0b4 \uc2ac\ub7ec\uadf8 \uc911\ubcf5 \ud655\uc778 *\/<\/span><span style=\"color: #24292E\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">SELECT<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&#39;Duplicate Slug&#39;<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">AS<\/span><span style=\"color: #24292E\"> Issue, slug, <\/span><span style=\"color: #005CC5\">COUNT<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #D73A49\">*<\/span><span style=\"color: #24292E\">) <\/span><span style=\"color: #D73A49\">AS<\/span><span style=\"color: #24292E\"> Count<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">FROM<\/span><span style=\"color: #24292E\"> wp_terms<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">GROUP BY<\/span><span style=\"color: #24292E\"> slug<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">HAVING<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">COUNT<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #D73A49\">*<\/span><span style=\"color: #24292E\">) <\/span><span style=\"color: #D73A49\">&gt;<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">1<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">UNION ALL<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/* 2. wp_terms \ud14c\uc774\ube14 \ub0b4 term_id \uc911\ubcf5 \ud655\uc778 *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">SELECT<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&#39;Duplicate Term ID (Terms)&#39;<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">AS<\/span><span style=\"color: #24292E\"> Issue, term_id, <\/span><span style=\"color: #005CC5\">COUNT<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #D73A49\">*<\/span><span style=\"color: #24292E\">) <\/span><span style=\"color: #D73A49\">AS<\/span><span style=\"color: #24292E\"> Count<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">FROM<\/span><span style=\"color: #24292E\"> wp_terms<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">GROUP BY<\/span><span style=\"color: #24292E\"> term_id<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">HAVING<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">COUNT<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #D73A49\">*<\/span><span style=\"color: #24292E\">) <\/span><span style=\"color: #D73A49\">&gt;<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">1<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">UNION ALL<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/* 3. wp_term_taxonomy \ud14c\uc774\ube14 \ub0b4 term_id \uc911\ubcf5 \ud655\uc778 *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">SELECT<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&#39;Duplicate Term ID (Taxonomy)&#39;<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">AS<\/span><span style=\"color: #24292E\"> Issue, term_id, <\/span><span style=\"color: #005CC5\">COUNT<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #D73A49\">*<\/span><span style=\"color: #24292E\">) <\/span><span style=\"color: #D73A49\">AS<\/span><span style=\"color: #24292E\"> Count<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">FROM<\/span><span style=\"color: #24292E\"> wp_term_taxonomy<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">GROUP BY<\/span><span style=\"color: #24292E\"> term_id<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">HAVING<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">COUNT<\/span><span style=\"color: #24292E\">(<\/span><span style=\"color: #D73A49\">*<\/span><span style=\"color: #24292E\">) <\/span><span style=\"color: #D73A49\">&gt;<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #005CC5\">1<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">UNION ALL<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/* 4. \uad00\uacc4\uac00 \ub04a\uae34 \uc720\ub839 \ub370\uc774\ud130 \ud655\uc778 (wp_term_taxonomy\uc5d0 \uc5c6\ub294 terms) *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">SELECT<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&#39;Orphaned Term (No Taxonomy)&#39;<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">AS<\/span><span style=\"color: #24292E\"> Issue, term_id, slug <\/span><span style=\"color: #D73A49\">AS<\/span><span style=\"color: #24292E\"> Count<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">FROM<\/span><span style=\"color: #24292E\"> wp_terms<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">WHERE<\/span><span style=\"color: #24292E\"> term_id <\/span><span style=\"color: #D73A49\">NOT<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">IN<\/span><span style=\"color: #24292E\"> (<\/span><span style=\"color: #D73A49\">SELECT<\/span><span style=\"color: #24292E\"> term_id <\/span><span style=\"color: #D73A49\">FROM<\/span><span style=\"color: #24292E\"> wp_term_taxonomy);<\/span><\/span><\/code><\/pre><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"572\" height=\"29\" src=\"https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-6-My-SQL-returned-an-empty-result-set.png\" alt=\"\" class=\"wp-image-3655\" srcset=\"https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-6-My-SQL-returned-an-empty-result-set.png 572w, https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-6-My-SQL-returned-an-empty-result-set-300x15.png 300w\" sizes=\"auto, (max-width: 572px) 100vw, 572px\" \/><\/figure>\n<\/div>\n\n\n<h5 class=\"wp-block-heading\">\ud83d\ude80Unique Index<\/h5>\n\n\n\n<ul class=\"wp-block-list\">\n<li>If the integrity check returns zero results (Empty set), you can safely enforce permanent protection against slug duplication.<\/li>\n\n\n\n<li>Adding a unique index to wp_terms prevents slug duplication at the database level and improves searching performance.<\/li>\n\n\n\n<li>A successful execution of this command indicates that the current table contains no duplicate slugs whatsoever.<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\/* \uc2ac\ub7ec\uadf8 \uc911\ubcf5 \ubc29\uc9c0 \uc778\ub371\uc2a4 \ucd94\uac00 *\/\nALTER TABLE wp_terms ADD UNIQUE INDEX idx_unique_slug (slug);\n\n\/* term_id \uc911\ubcf5 \ubc29\uc9c0 \uc778\ub371\uc2a4 \ucd94\uac00 (\uc774\ubbf8 \uae30\ubcf8\ud0a4\uac00 \uc788\ub2e4\uba74 \uc0dd\ub7b5 \uac00\ub2a5) *\/\n\/* \ubcf4\ud1b5 term_id\ub294 PRIMARY KEY\ub85c \uc124\uc815\ub418\uc5b4 \uc788\uc73c\ub098, \ub9cc\uc57d \uc5c6\ub2e4\uba74 \ucd94\uac00 \uad8c\uc7a5 *\/<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">\/* \uc2ac\ub7ec\uadf8 \uc911\ubcf5 \ubc29\uc9c0 \uc778\ub371\uc2a4 \ucd94\uac00 *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">ALTER<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">TABLE<\/span><span style=\"color: #24292E\"> wp_terms <\/span><span style=\"color: #D73A49\">ADD<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">UNIQUE<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">INDEX<\/span><span style=\"color: #24292E\"> idx_unique_slug (slug);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/* term_id \uc911\ubcf5 \ubc29\uc9c0 \uc778\ub371\uc2a4 \ucd94\uac00 (\uc774\ubbf8 \uae30\ubcf8\ud0a4\uac00 \uc788\ub2e4\uba74 \uc0dd\ub7b5 \uac00\ub2a5) *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/* \ubcf4\ud1b5 term_id\ub294 PRIMARY KEY\ub85c \uc124\uc815\ub418\uc5b4 \uc788\uc73c\ub098, \ub9cc\uc57d \uc5c6\ub2e4\uba74 \ucd94\uac00 \uad8c\uc7a5 *\/<\/span><\/span><\/code><\/pre><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"897\" height=\"132\" src=\"https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-7-Add-Unique-Index.png\" alt=\"\" class=\"wp-image-3656\" srcset=\"https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-7-Add-Unique-Index.png 897w, https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-7-Add-Unique-Index-300x44.png 300w, https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-7-Add-Unique-Index-768x113.png 768w\" sizes=\"auto, (max-width: 897px) 100vw, 897px\" \/><\/figure>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Precheck SQL<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is an integrated pre-check code to simultaneously verify if the slug &#8216;yield&#8217; is already in use within both the Categories (Terms) table and the Posts table before adding it as a new category.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\/* 1. \ubcc0\uc218 \uc120\uc5b8 *\/\nSET @target_slug = 'yield';\n\n\/* 2. \ud1b5\ud569 \uc870\ud68c \uc2e4\ud589 (COLLATE \ucd94\uac00) *\/\nSELECT 'Term (Category\/Tag)' AS Source, term_id AS ID, name AS Title, slug AS Slug_Name\nFROM wp_terms\nWHERE slug COLLATE utf8mb4_unicode_ci = @target_slug\n\nUNION ALL \n\nSELECT 'Post (Page\/Post\/Menu)' AS Source, ID, post_title AS Title, post_name AS Slug_Name\nFROM wp_posts\nWHERE post_name COLLATE utf8mb4_unicode_ci = @target_slug;<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">\/* 1. \ubcc0\uc218 \uc120\uc5b8 *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">SET<\/span><span style=\"color: #24292E\"> @target_slug <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&#39;yield&#39;<\/span><span style=\"color: #24292E\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/* 2. \ud1b5\ud569 \uc870\ud68c \uc2e4\ud589 (COLLATE \ucd94\uac00) *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">SELECT<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&#39;Term (Category\/Tag)&#39;<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">AS<\/span><span style=\"color: #24292E\"> Source, term_id <\/span><span style=\"color: #D73A49\">AS<\/span><span style=\"color: #24292E\"> ID, <\/span><span style=\"color: #D73A49\">name<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">AS<\/span><span style=\"color: #24292E\"> Title, slug <\/span><span style=\"color: #D73A49\">AS<\/span><span style=\"color: #24292E\"> Slug_Name<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">FROM<\/span><span style=\"color: #24292E\"> wp_terms<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">WHERE<\/span><span style=\"color: #24292E\"> slug <\/span><span style=\"color: #D73A49\">COLLATE<\/span><span style=\"color: #24292E\"> utf8mb4_unicode_ci <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> @target_slug<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">UNION ALL<\/span><span style=\"color: #24292E\"> <\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">SELECT<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #032F62\">&#39;Post (Page\/Post\/Menu)&#39;<\/span><span style=\"color: #24292E\"> <\/span><span style=\"color: #D73A49\">AS<\/span><span style=\"color: #24292E\"> Source, ID, post_title <\/span><span style=\"color: #D73A49\">AS<\/span><span style=\"color: #24292E\"> Title, post_name <\/span><span style=\"color: #D73A49\">AS<\/span><span style=\"color: #24292E\"> Slug_Name<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">FROM<\/span><span style=\"color: #24292E\"> wp_posts<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D73A49\">WHERE<\/span><span style=\"color: #24292E\"> post_name <\/span><span style=\"color: #D73A49\">COLLATE<\/span><span style=\"color: #24292E\"> utf8mb4_unicode_ci <\/span><span style=\"color: #D73A49\">=<\/span><span style=\"color: #24292E\"> @target_slug;<\/span><\/span><\/code><\/pre><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"334\" height=\"49\" src=\"https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-8-Precheck-SQL-result.png\" alt=\"\" class=\"wp-image-3657\" srcset=\"https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-8-Precheck-SQL-result.png 334w, https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-8-Precheck-SQL-result-300x44.png 300w\" sizes=\"auto, (max-width: 334px) 100vw, 334px\" \/><\/figure>\n<\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Appendix<\/h2>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>DESC wp_terms;<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D73A49\">DESC<\/span><span style=\"color: #24292E\"> wp_terms;<\/span><\/span><\/code><\/pre><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"504\" height=\"133\" src=\"https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-9-desc-wp_terms.png\" alt=\"\" class=\"wp-image-3658\" srcset=\"https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-9-desc-wp_terms.png 504w, https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-9-desc-wp_terms-300x79.png 300w\" sizes=\"auto, (max-width: 504px) 100vw, 504px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"has-text-align-center wp-block-paragraph\">PRI: Primary Key, UNI: Unique Key, MUL: Multiple Key<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#24292e;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#24292e;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>DESC wp_term_taxonomy;<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-light\" style=\"background-color: #fff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D73A49\">DESC<\/span><span style=\"color: #24292E\"> wp_term_taxonomy;<\/span><\/span><\/code><\/pre><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"554\" height=\"189\" src=\"https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-10-desc-wp_term_taxonomy.png\" alt=\"\" class=\"wp-image-3659\" srcset=\"https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-10-desc-wp_term_taxonomy.png 554w, https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-10-desc-wp_term_taxonomy-300x102.png 300w\" sizes=\"auto, (max-width: 554px) 100vw, 554px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n<div style='text-align:center' class='yasr-auto-insert-overall'><\/div><div style='text-align:center' class='yasr-auto-insert-visitor'><\/div>","protected":false},"excerpt":{"rendered":"<p>The Slug Uniqueness Grouped-Slug Count in \u201cwp_terms\u201d Table If you group by slug and the count is 2 or more, it means different term_id values exist that share the same slug. Slug \u201cterm_id\u201c in \u201cwp_terms\u201c The \u2018interview\u2019 slug is duplicated under term_id 257 and 262, \u2018wordpress\u2019 is duplicated under 59 and 267, and \u2018yield\u2019 is&#8230;<\/p>\n","protected":false},"author":1,"featured_media":3650,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","yasr_overall_rating":0,"yasr_post_is_review":"","yasr_auto_insert_disabled":"","yasr_review_type":"","fifu_image_url":"","fifu_image_alt":"","iawp_total_views":0,"footnotes":""},"categories":[87,10,293],"tags":[],"class_list":["post-3609","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress-slug","category-software-slug","category-sql-slug"],"yasr_visitor_votes":{"stars_attributes":{"read_only":false,"span_bottom":false},"number_of_votes":0,"sum_votes":0},"jetpack_featured_media_url":"https:\/\/ykim.synology.me\/wordpress\/wp-content\/uploads\/2025\/12\/20251223-slug-uniqueness-1.png","_links":{"self":[{"href":"https:\/\/ykim.synology.me\/wordpress\/wp-json\/wp\/v2\/posts\/3609","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ykim.synology.me\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ykim.synology.me\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ykim.synology.me\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ykim.synology.me\/wordpress\/wp-json\/wp\/v2\/comments?post=3609"}],"version-history":[{"count":28,"href":"https:\/\/ykim.synology.me\/wordpress\/wp-json\/wp\/v2\/posts\/3609\/revisions"}],"predecessor-version":[{"id":3696,"href":"https:\/\/ykim.synology.me\/wordpress\/wp-json\/wp\/v2\/posts\/3609\/revisions\/3696"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ykim.synology.me\/wordpress\/wp-json\/wp\/v2\/media\/3650"}],"wp:attachment":[{"href":"https:\/\/ykim.synology.me\/wordpress\/wp-json\/wp\/v2\/media?parent=3609"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ykim.synology.me\/wordpress\/wp-json\/wp\/v2\/categories?post=3609"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ykim.synology.me\/wordpress\/wp-json\/wp\/v2\/tags?post=3609"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}