Når et nettsted vokser over flere år, begynner taksonomien å bli et problem. Et stille problem, for det går ganske ubemerket hen lenge.
I starten skjer det ingenting. Du lager en ny kategori, legger til et stikkord, prøver et annet, endrer den redaksjonelle vinklingen… og fortsetter å publisere.
Men etter hvert som nettstedet vokser, havner en artikkel en dag i ukategorisert. En annen gang glemmer du et stikkord som passet perfekt. Og tredje gang glemmer du om du hadde opprettet et bestemt stikkord eller ikke, og hvorfor du gjorde det (ja/nei).
Hvis du vil gjøre det ordentlig, kommer det et tidspunkt der det begynner å ta lengre tid enn det burde å klassifisere en artikkel. Fordi det finnes for mange muligheter, og du ikke alltid har klart for deg eller husker når du skal bruke hver enkelt.
Det var det som skjedde med meg, og derfor forklarte jeg nylig hvordan jeg rekategoriserte og tagget om hele WordPress-installasjonen min.
Jeg skal ikke gjenta her hvordan nettstedet mitt er organisert, bortsett fra det helt nødvendige for at du skal forstå dette systemet bedre: tre store pilarer: Business, Teknologi og Underholdning og flere underkategorier på andre nivå i hver av dem, i tillegg til stikkord.
Forresten, hvis du mister tråden litt med alt dette, har du her en artikkel der jeg forklarer forskjellen mellom stikkord og kategorier, og når du bør bruke det ene eller det andre.
Índice de Contenidos del Artículo
- Målet: raskere å bestemme hvordan hver artikkel skal klassifiseres og ikke rote det til
- Løsningen: en egen skjerm i WordPress-admin
- Hva den egentlig er til for
- Konklusjon
- Ofte stilte spørsmål
- Hva er en taksonomi i WordPress?
- Hva brukes et redaksjonelt kart for WordPress-taksonomi til?
- Hva er forskjellen mellom kategorier og stikkord i WordPress?
- Hva er strukturelle stikkord?
- Hva er nøstede stikkord?
- Endrer dette redaksjonelle kartet WordPress-taksonomien?
- Er det verdt å lage et redaksjonelt kart for et lite nettsted?
- Hjelper det SEO å organisere kategorier og stikkord bedre?
Målet: raskere å bestemme hvordan hver artikkel skal klassifiseres og ikke rote det til
Ideen var å lage et system som gjorde livet mitt enklere når jeg skulle tagge en artikkel. Noe umiddelbart, med liten sjanse for feil eller utelatelser.
I tillegg, som et sekundært mål, ville jeg ha en viss kontroll over hvor mye innhold jeg hadde opprettet under hver kategori eller hvert stikkord.
En viktig ting her er at før jeg satte i gang med løsningen, definerte jeg to typer stikkord:
- Strukturelle: Dette er de som ikke tilhører en konkret kategori, men beskriver formatet eller hensikten med artikkelen. For eksempel: Tutorial, Anmeldelse, Anbefalt, Spare eller Personvern.
- Nøstede: Disse har derimot en naturlig kategori. For eksempel Google Analytics passer inn under underkategorien Analyse, Email under Marketing, Chromebook under Hardware, Konsoller under Videospill eller Europeiske tegneserier under Tegneserier.
Dette gjorde visualiseringen mye enklere, som du snart skal se.
Løsningen: en egen skjerm i WordPress-admin
Jeg kunne ha satt det opp som et tankekart, som var min første idé fordi det er så visuelt.
Eller i Excel, på grunn av tallene.
Men i begge tilfeller ville administrasjon og vedlikehold vært manuelt, noe jeg ville unngå for enhver pris.
Så løsningen var å bygge noe inne i WordPress.
Hvordan gjorde jeg det?
Ved å opprette en egendefinert side i WordPress-administrasjonen med kode i functions.php.

Denne skjermen fungerer som et lite redaksjonelt kart delt i to halvdeler:
På venstre side vises hovedkategoriene og underkategoriene deres. Under hver vises de anbefalte stikkordene for å klassifisere artikler i den blokken.
På høyre side vises stikkordene, delt inn i de to blokkene nevnt før: strukturelle og nøstede.
I tillegg la jeg til:
- Et søkefelt.
- Lenker til arkiv og redigering
- Artikkeltellere per taksonomi.
Du får tilgang til den fra innleggseksjonen:

Koden
Her er koden jeg la til i functions.php, men merk: du må redigere den slik at den passer til dine kategorier og stikkord. Du kan gjøre det selv eller forklare det til ChatGPT og få den til å endre den for deg:
/* =========================================================
* MAPA EDITORIAL DE TAXONOMÍAS
* Página interna para visualizar categorías y etiquetas
* ========================================================= */
add_action('admin_menu', 'yg_mapa_editorial_menu');
function yg_mapa_editorial_menu() {
add_submenu_page(
'edit.php',
'Mapa editorial',
'Mapa editorial',
'manage_categories',
'yg-mapa-editorial',
'yg_render_mapa_editorial'
);
}
/**
* Configuración editorial del mapa.
*/
function yg_mapa_editorial_config() {
return array(
'categorias_principales' => array(
'Negocio',
'Tecnología',
'Ocio',
),
// Categorías obsoletas o que no queremos mostrar en el mapa editorial.
'categorias_excluidas' => array(
'Diseño',
'Diseño gráfico',
'Diseño web',
'Ilustración',
'Usabilidad',
'Sin categoría',
),
// Etiquetas transversales: formato, enfoque o intención del contenido.
'etiquetas_estructurales' => array(
'Tutorial',
'Reseña',
'Recomendado',
'Ahorrar',
'Privacidad',
),
// Etiquetas temáticas/anidadas por pilar.
// Productividad queda como anidada de Negocio.
'etiquetas_anidadas' => array(
'Negocio' => array(
'Productividad',
'Google Analytics',
'CRO',
'SEO',
'Email',
'Acumbamail',
),
'Tecnología' => array(
'WordPress',
'Chromebook',
'Gmail',
'Trello',
'Video',
),
'Ocio' => array(
'Consolas',
'Retro',
'Cómic Americano',
'Cómic Europeo',
'Manga',
'Pérez-Reverte',
),
),
// Etiquetas recomendadas bajo cada categoría.
// La clave debe coincidir con el slug habitual de la categoría.
'etiquetas_por_categoria' => array(
// Negocio
'negocio' => array('Productividad', 'SEO', 'CRO', 'Email', 'Acumbamail', 'Google Analytics'),
'analitica' => array('Google Analytics', 'CRO', 'Tutorial'),
'casos-de-exito' => array('Productividad'),
'ecommerce' => array('CRO', 'Email', 'Acumbamail', 'Google Analytics', 'Tutorial'),
'inversion' => array('Ahorrar'),
'marketing' => array('Email', 'Acumbamail', 'SEO', 'CRO', 'Productividad'),
'negocios-online' => array('Productividad', 'SEO', 'CRO'),
// Tecnología
'tecnologia' => array('WordPress', 'Privacidad', 'Tutorial'),
'hardware' => array('Chromebook', 'Tutorial'),
'herramientas' => array('Trello', 'Gmail', 'WordPress', 'Tutorial'),
'inteligencia-artificial' => array('Video', 'Tutorial'),
'software' => array('WordPress', 'Gmail', 'Trello', 'Privacidad', 'Tutorial'),
// Ocio
'ocio' => array('Reseña', 'Recomendado'),
'comics' => array('Cómic Americano', 'Cómic Europeo', 'Manga', 'Reseña'),
'libros' => array('Pérez-Reverte', 'Reseña', 'Recomendado'),
'musica' => array('Video', 'Reseña'),
'peliculas' => array('Reseña', 'Recomendado'),
'series' => array('Reseña', 'Recomendado'),
'videojuegos' => array('Consolas', 'Retro', 'Reseña', 'Recomendado'),
),
);
}
/**
* Recupera término por nombre o slug.
*/
function yg_mapa_get_term_by_name_or_slug($name, $taxonomy) {
$term = get_term_by('name', $name, $taxonomy);
if (!$term) {
$term = get_term_by('slug', sanitize_title($name), $taxonomy);
}
if (!$term || is_wp_error($term)) {
return null;
}
return $term;
}
/**
* Comprueba si una categoría debe ocultarse.
*/
function yg_mapa_categoria_excluida($term, $config) {
if (!$term || is_wp_error($term)) {
return true;
}
return in_array($term->name, $config['categorias_excluidas'], true);
}
/**
* Render de una etiqueta como píldora compacta dentro de tarjetas de categoría.
*/
function yg_mapa_tag_pill($tag_name) {
$term = yg_mapa_get_term_by_name_or_slug($tag_name, 'post_tag');
if (!$term) {
return '<span class="yg-map-pill yg-map-pill--missing">' . esc_html($tag_name) . ' <small>no existe</small></span>';
}
$edit_link = get_edit_term_link($term->term_id, 'post_tag');
$archive_link = get_term_link($term);
$html = '<span class="yg-map-pill">';
$html .= '<strong>' . esc_html($term->name) . '</strong>';
$html .= '<em>' . intval($term->count) . '</em>';
if (!is_wp_error($archive_link)) {
$html .= '<a href="' . esc_url($archive_link) . '" target="_blank">ver</a>';
}
if ($edit_link) {
$html .= '<a href="' . esc_url($edit_link) . '">editar</a>';
}
$html .= '</span>';
return $html;
}
/**
* Render de tarjeta compacta de categoría.
*/
function yg_mapa_category_card($term, $config) {
if (!$term || is_wp_error($term)) {
return;
}
if (yg_mapa_categoria_excluida($term, $config)) {
return;
}
$archive_link = get_term_link($term);
$edit_link = get_edit_term_link($term->term_id, 'category');
$recommended_tags = array();
if (!empty($config['etiquetas_por_categoria'][$term->slug])) {
$recommended_tags = $config['etiquetas_por_categoria'][$term->slug];
}
echo '<article class="yg-map-card yg-map-card--category" data-map-search="' . esc_attr(strtolower($term->name)) . '">';
echo '<div class="yg-map-card__top">';
echo '<h3>' . esc_html($term->name) . '</h3>';
echo '<span class="yg-map-count">' . intval($term->count) . ' artículos</span>';
echo '</div>';
if (!empty($recommended_tags)) {
echo '<div class="yg-map-card__tags">';
echo '<span class="yg-map-label">Etiquetas recomendadas</span>';
echo '<div class="yg-map-pills">';
foreach ($recommended_tags as $tag_name) {
echo yg_mapa_tag_pill($tag_name);
}
echo '</div>';
echo '</div>';
}
echo '<div class="yg-map-card__actions">';
if (!is_wp_error($archive_link)) {
echo '<a href="' . esc_url($archive_link) . '" target="_blank">Ver archivo</a>';
}
if ($edit_link) {
echo '<a href="' . esc_url($edit_link) . '">Editar</a>';
}
echo '</div>';
echo '</article>';
}
/**
* Render de tarjeta compacta de etiqueta.
* No muestra ya las píldoras "Estructural" / "Anidada".
*/
function yg_mapa_tag_card($tag_name) {
$term = yg_mapa_get_term_by_name_or_slug($tag_name, 'post_tag');
if (!$term) {
echo '<article class="yg-map-card yg-map-card--tag yg-map-card--missing">';
echo '<div class="yg-map-card__top">';
echo '<h3>' . esc_html($tag_name) . '</h3>';
echo '<span class="yg-map-count">no existe</span>';
echo '</div>';
echo '</article>';
return;
}
$archive_link = get_term_link($term);
$edit_link = get_edit_term_link($term->term_id, 'post_tag');
echo '<article class="yg-map-card yg-map-card--tag" data-map-search="' . esc_attr(strtolower($term->name)) . '">';
echo '<div class="yg-map-card__top">';
echo '<h3>' . esc_html($term->name) . '</h3>';
echo '<span class="yg-map-count">' . intval($term->count) . ' artículos</span>';
echo '</div>';
echo '<div class="yg-map-card__actions">';
if (!is_wp_error($archive_link)) {
echo '<a href="' . esc_url($archive_link) . '" target="_blank">Ver archivo</a>';
}
if ($edit_link) {
echo '<a href="' . esc_url($edit_link) . '">Editar</a>';
}
echo '</div>';
echo '</article>';
}
/**
* Render principal.
*/
function yg_render_mapa_editorial() {
if (!current_user_can('manage_categories')) {
wp_die('No tienes permisos para ver esta página.');
}
$config = yg_mapa_editorial_config();
echo '<div class="wrap yg-map-wrap">';
echo '<h1>Mapa editorial</h1>';
echo '<p class="yg-map-intro">Consulta de forma rápida las categorías y etiquetas recomendadas para decidir cómo clasificar cada artículo.</p>';
echo '<input type="search" id="yg-map-search" class="yg-map-search" placeholder="Buscar categoría o etiqueta..." />';
echo '<div class="yg-map-layout">';
/* ======================
* CATEGORÍAS
* ====================== */
echo '<section class="yg-map-panel">';
echo '<div class="yg-map-panel__head">';
echo '<h2>Categorías</h2>';
echo '<p>Estructura principal de la web. Debajo de cada categoría se muestran sus etiquetas anidadas recomendadas.</p>';
echo '</div>';
foreach ($config['categorias_principales'] as $parent_name) {
$parent = yg_mapa_get_term_by_name_or_slug($parent_name, 'category');
if (!$parent || yg_mapa_categoria_excluida($parent, $config)) {
continue;
}
echo '<div class="yg-map-category-group">';
echo '<h2 class="yg-map-group-title">' . esc_html($parent->name) . '</h2>';
yg_mapa_category_card($parent, $config);
$children = get_categories(array(
'taxonomy' => 'category',
'hide_empty' => false,
'parent' => $parent->term_id,
'orderby' => 'name',
'order' => 'ASC',
));
if (!empty($children)) {
echo '<div class="yg-map-child-grid">';
foreach ($children as $child) {
yg_mapa_category_card($child, $config);
}
echo '</div>';
}
echo '</div>';
}
echo '</section>';
/* ======================
* ETIQUETAS
* ====================== */
echo '<section class="yg-map-panel">';
echo '<div class="yg-map-panel__head">';
echo '<h2>Etiquetas</h2>';
echo '<p>Separación editorial entre etiquetas estructurales y etiquetas anidadas por pilar.</p>';
echo '</div>';
// Estructurales
echo '<div class="yg-map-tag-block">';
echo '<h2 class="yg-map-group-title">Estructurales</h2>';
echo '<p class="yg-map-help">Transversales: formato, intención o enfoque. Se pueden usar en artículos de distintas categorías.</p>';
echo '<div class="yg-map-tag-grid">';
foreach ($config['etiquetas_estructurales'] as $tag_name) {
yg_mapa_tag_card($tag_name);
}
echo '</div>';
echo '</div>';
// Anidadas
echo '<div class="yg-map-tag-block">';
echo '<h2 class="yg-map-group-title">Anidadas</h2>';
echo '<p class="yg-map-help">Temáticas: deben usarse principalmente dentro de su pilar o categoría natural.</p>';
foreach ($config['etiquetas_anidadas'] as $group_name => $tags) {
echo '<div class="yg-map-nested-group">';
echo '<h3>' . esc_html($group_name) . '</h3>';
echo '<div class="yg-map-tag-grid">';
foreach ($tags as $tag_name) {
yg_mapa_tag_card($tag_name);
}
echo '</div>';
echo '</div>';
}
echo '</div>';
echo '</section>';
echo '</div>'; // layout
echo '</div>'; // wrap
yg_mapa_editorial_styles();
yg_mapa_editorial_scripts();
}
/**
* CSS interno para la pantalla.
*/
function yg_mapa_editorial_styles() {
?>
<style>
.yg-map-wrap {
max-width: 1320px;
}
.yg-map-intro {
margin: 4px 0 18px;
color: #555;
font-size: 14px;
}
.yg-map-search {
width: 100%;
max-width: 520px;
margin: 0 0 22px;
padding: 10px 12px;
border: 1px solid #ccd0d4;
border-radius: 6px;
background: #fff;
}
.yg-map-layout {
display: grid;
grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
gap: 22px;
align-items: start;
}
.yg-map-panel {
background: #fff;
border: 1px solid #dcdcde;
border-radius: 8px;
padding: 18px;
}
.yg-map-panel__head {
margin-bottom: 16px;
}
.yg-map-panel__head h2 {
margin: 0 0 4px;
font-size: 18px;
}
.yg-map-panel__head p,
.yg-map-help {
margin: 0;
color: #666;
font-size: 12px;
line-height: 1.45;
}
.yg-map-category-group,
.yg-map-tag-block {
margin-bottom: 22px;
}
.yg-map-category-group:last-child,
.yg-map-tag-block:last-child {
margin-bottom: 0;
}
.yg-map-group-title {
margin: 0 0 10px;
padding: 0 0 7px;
border-bottom: 1px solid #ececec;
font-size: 15px;
font-weight: 700;
color: #1d2327;
}
.yg-map-child-grid,
.yg-map-tag-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
gap: 10px;
}
.yg-map-nested-group {
margin-top: 16px;
}
.yg-map-nested-group h3 {
margin: 0 0 8px;
font-size: 14px;
color: #1d2327;
}
.yg-map-card {
background: #fdfdfd;
border: 1px solid #dcdcde;
border-radius: 8px;
padding: 10px;
min-height: auto;
}
.yg-map-card--missing {
opacity: .65;
border-style: dashed;
}
.yg-map-card__top {
display: flex;
gap: 8px;
justify-content: space-between;
align-items: flex-start;
margin-bottom: 7px;
}
.yg-map-card h3 {
margin: 0;
font-size: 13px;
line-height: 1.25;
font-weight: 700;
color: #1d2327;
}
.yg-map-count {
flex: 0 0 auto;
display: inline-flex;
align-items: center;
white-space: nowrap;
padding: 3px 7px;
border-radius: 999px;
background: #fff4ce;
color: #5f4500;
font-size: 11px;
font-weight: 600;
}
.yg-map-card__tags {
margin-top: 8px;
}
.yg-map-label {
display: block;
margin-bottom: 5px;
font-size: 11px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .02em;
color: #646970;
}
.yg-map-pills {
display: flex;
flex-wrap: wrap;
gap: 5px;
}
.yg-map-pill {
display: inline-flex;
align-items: center;
gap: 5px;
padding: 4px 7px;
border-radius: 999px;
background: #f0f6fc;
border: 1px solid #c5d9ed;
font-size: 11px;
color: #1d2327;
}
.yg-map-pill em {
font-style: normal;
color: #646970;
}
.yg-map-pill a {
text-decoration: none;
}
.yg-map-pill--missing {
background: #fff7f7;
border-color: #f0b8b8;
color: #8a2424;
}
.yg-map-card__actions {
display: flex;
gap: 8px;
flex-wrap: wrap;
margin-top: 7px;
font-size: 11px;
}
.yg-map-card__actions a {
text-decoration: none;
}
@media (max-width: 1100px) {
.yg-map-layout {
grid-template-columns: 1fr;
}
}
</style>
<?php
}
/**
* JS interno para buscador rápido.
*/
function yg_mapa_editorial_scripts() {
?>
<script>
document.addEventListener('DOMContentLoaded', function () {
const input = document.getElementById('yg-map-search');
if (!input) return;
input.addEventListener('input', function () {
const query = this.value.toLowerCase().trim();
const cards = document.querySelectorAll('.yg-map-card');
cards.forEach(function (card) {
const text = card.textContent.toLowerCase();
card.style.display = text.includes(query) ? '' : 'none';
});
});
});
</script>
<?php
}
Dessuten kan du, hvis du vil, skille ut CSS-en i style.css, men jeg har foretrukket å holde all koden samlet.
Hva den egentlig er til for
Dette redaksjonelle kartet endrer ikke WordPress-taksonomien, men gjør den enklere å bruke.
Før hadde jeg en liste over kategorier og stikkord etter et kriterium jeg valgte på et tidspunkt. Nå har jeg dette kriteriet synlig og lett tilgjengelig, noe som lar meg:
- Klassifisere innlegg raskere samtidig som jeg bevarer redaksjonell konsistens.
- Unngå å opprette dupliserte eller unødvendige stikkord.
- Oppdage taksonomier med få artikler.
- Skalere nettstedet riktig hvis jeg publiserer mer innhold, som er poenget.
Konklusjon
Å organisere WordPress-taksonomien handler ikke bare om å opprette kategorier og stikkord, men om å ha et system for å bruke dem riktig.
I mitt tilfelle trengte jeg på dette tidspunktet et redaksjonelt lag oppå: et enkelt system som foreslo stikkordene som gir mening for hver type innhold.
Hvis du har et lite nettsted, trenger du det kanskje ikke, men hvis du har publisert i årevis og allerede begynner å tvile mellom kategorier, stikkord, temaer, formater og verktøy, kan et redaksjonelt kart eller et redaksjonelt system spare deg for ganske mye kaos, nå og i fremtiden.
Det er ingen stor teknisk revolusjon, men det er en forbedring som sparer tid og lar deg publisere med samme kriterium hver gang.
Ofte stilte spørsmål
Hva er en taksonomi i WordPress?
En taksonomi i WordPress er en måte å organisere innhold på. De vanligste er kategorier og stikkord, selv om WordPress også lar deg lage egendefinerte taksonomier. I praksis brukes de til å klassifisere innlegg og gjøre et nettsted enklere å navigere og vedlikeholde.
Hva brukes et redaksjonelt kart for WordPress-taksonomi til?
Det hjelper deg å ha klart for deg hvilke kategorier og stikkord du skal bruke i hver artikkel. I stedet for å bestemme det fra hukommelsen hver gang du publiserer, har du en intern skjerm der du ser kategoriene, anbefalte stikkord og den redaksjonelle funksjonen til hvert begrep.
Hva er forskjellen mellom kategorier og stikkord i WordPress?
Kategorier representerer vanligvis de store seksjonene på et nettsted. Stikkord brukes til å knytte innhold sammen etter tema, format, verktøy, forfatter, hensikt eller vinkling. For eksempel kan en kategori være “Teknologi” og et stikkord være “WordPress”, “Tutorial” eller “Personvern”.
Hva er strukturelle stikkord?
Det er tverrgående stikkord som kan brukes på artikler fra forskjellige kategorier. For eksempel “Tutorial”, “Anmeldelse”, “Anbefalt”, “Spare” eller “Personvern”. De tilhører ikke én enkelt seksjon, men beskriver innholdstypen eller hensikten.
Hva er nøstede stikkord?
Det er stikkord som har en naturlig referansekategori. For eksempel passer “Google Analytics” under Analyse, “Email” under Marketing, “Konsoller” under Videospill eller “Europeiske tegneserier” under Tegneserier. De hjelper til med å holde klassifiseringen mer konsistent.
Endrer dette redaksjonelle kartet WordPress-taksonomien?
Ikke nødvendigvis. Det redaksjonelle kartet trenger ikke å endre kategorier eller stikkord av seg selv. Hovedfunksjonen er å fungere som en visuell guide i administrasjonen for å avgjøre bedre hvordan hvert innlegg skal klassifiseres.
Er det verdt å lage et redaksjonelt kart for et lite nettsted?
Hvis du har få artikler, er det sannsynligvis ikke nødvendig. Det begynner å gi mening når nettstedet vokser, det finnes mange kategorier eller stikkord, du publiserer om flere temaer eller du må holde et tydeligere redaksjonelt kriterium.
Hjelper det SEO å organisere kategorier og stikkord bedre?
Det kan hjelpe indirekte. En tydeligere taksonomi forbedrer den interne strukturen, unngår duplikater, gjør lenking enklere og gjør det mulig å lage mer nyttige kategori- eller stikkordarkiver. Det viktige er å ikke lage meningsløse termer eller tomme eller for tynne arkivsider.

Legg igjen en kommentar