Benutzerdefinierte Taxonomien für spezielle Inhaltsstrukturen in WordPress (mit HTML-Ausgabe)
Benutzerdefinierte Taxonomien sind ein kraftvolles Mittel, Inhalte in WordPress jenseits von Standard-Kategorien & -Tags zu strukturieren. Sie verbessern Navigation, Filter, interne Verlinkung und SEO. Unten findest du eine schlanke, update-sichere Umsetzung inkl. sicherer HTML-Ausgabe.
Was sind benutzerdefinierte Taxonomien?
Neben Kategorien (hierarchisch) und Schlagwörtern (flach) kannst du eigene Taxonomien anlegen – z. B. produktkategorien
für einen Custom Post Type produkt
. So entstehen klare Inhaltsstrukturen (z. B. Kleidung → Schuhe → Sneaker).
1) Taxonomie registrieren
Empfehlung: In ein Mini-Plugin oder in functions.php
des Child-Themes. Mit REST-Unterstützung, hübschen Permalinks und Admin-Spalte:
<?php
// Optional: CPT "produkt" registrieren (falls noch nicht vorhanden)
add_action('init', function () {
register_post_type('produkt', [
'label' => 'Produkte',
'public' => true,
'show_in_rest' => true,
'supports' => ['title','editor','thumbnail'],
'menu_icon' => 'dashicons-products',
'has_archive' => true,
'rewrite' => ['slug' => 'produkte'],
]);
});
// Taxonomie "produktkategorien" registrieren
add_action('init', function () {
$labels = [
'name' => 'Produktkategorien',
'singular_name' => 'Produktkategorie',
'search_items' => 'Kategorien durchsuchen',
'all_items' => 'Alle Kategorien',
'parent_item' => 'Übergeordnete Kategorie',
'parent_item_colon' => 'Übergeordnete Kategorie:',
'edit_item' => 'Kategorie bearbeiten',
'update_item' => 'Kategorie aktualisieren',
'add_new_item' => 'Neue Kategorie hinzufügen',
'new_item_name' => 'Name der neuen Kategorie',
'menu_name' => 'Produktkategorien',
];
register_taxonomy('produktkategorien', ['produkt'], [
'labels' => $labels,
'public' => true,
'hierarchical' => true, // Baumstruktur wie "Kategorien"
'show_admin_column' => true, // Spalte in Beitragsliste
'show_in_rest' => true, // Gutenberg/REST
'rewrite' => [
'slug' => 'produktkategorien',
'with_front' => false,
'hierarchical' => true
],
]);
});
// Permalinks nach Aktivierung/Änderung einmalig neu schreiben
register_activation_hook(__FILE__, function(){ flush_rewrite_rules(); });
register_deactivation_hook(__FILE__, function(){ flush_rewrite_rules(); });
2) Beiträge mit Begriffen verknüpfen
Im Backend unter „Produkte“ die Box „Produktkategorien“ nutzen oder programmatisch setzen:
<?php
// Begriffe zuweisen (z. B. im Import)
wp_set_object_terms($post_id, ['Sneaker', 'Leder'], 'produktkategorien');
3) Taxonomie im Theme ausgeben (HTML)
Sichere Ausgabe mit Prüfung & Links auf die Term-Archive:
<ul class="produktkategorien">
<?php
$terms = get_the_terms(get_the_ID(), 'produktkategorien');
if ( $terms && ! is_wp_error($terms) ) :
foreach ( $terms as $term ) :
$link = get_term_link($term);
if ( is_wp_error($link) ) { continue; }
echo '<li><a href="'. esc_url($link) .'">'. esc_html($term->name) .'</a></li>';
endforeach;
else :
echo '<li>Keine Kategorien vergeben</li>';
endif;
?>
</ul>
4) Term-Archive & Templates
Lege eine taxonomy-produktkategorien.php
im Theme an, um die Archivansicht zu steuern (Titel, Beschreibung, Grid, Filter). Beispiel: Produkte einer Kategorie mit eigener Query rendern:
<?php
// taxonomy-produktkategorien.php (Ausschnitt)
get_header();
$term = get_queried_object();
echo '<h1>' . esc_html($term->name) . '</h1>';
if ( ! empty($term->description) ) {
echo '<p>' . esc_html($term->description) . '</p>';
}
// Eigenes Grid per WP_Query (optional)
$q = new WP_Query([
'post_type' => 'produkt',
'posts_per_page' => 12,
'tax_query' => [[
'taxonomy' => 'produktkategorien',
'field' => 'term_id',
'terms' => [$term->term_id],
]],
]);
if ( $q->have_posts() ) {
echo '<div class="grid">';
while ( $q->have_posts() ) { $q->the_post();
echo '<article><a href="' . esc_url(get_permalink()) . '">' . esc_html(get_the_title()) . '</a></article>';
}
echo '</div>';
the_posts_pagination();
wp_reset_postdata();
} else {
echo '<p>Keine Produkte gefunden.</p>';
}
get_footer();
5) UX, Performance & SEO-Hinweise
- Filter-UI: Facettierte Navigation über Taxonomien (Dropdowns, Checkboxen).
- Performance: Paginieren; große Archive lazy-laden; Caches nutzen.
- Saubere URLs: Hierarchische Slugs (z. B.
/produktkategorien/schuhe/sneaker/
). - Leer-Archive: Vermeide indexierbare, leere Term-Seiten (ggf. noindex setzen).
- Barrierefreiheit: Listen semantisch auszeichnen, Linktexte sprechend halten.
Fazit
Custom Taxonomies schaffen skalierbare Inhaltsarchitekturen in WordPress. Mit sauberer Registrierung, sicherer Ausgabe und passenden Templates erhältst du robuste Filter, klare Navigation und bessere SEO-Signale.