Nur Parent Category im Loop anzeigen in WordPress

Nur Elternkategorie im Loop anzeigen in WordPress – Ein umfassender Leitfaden für Deutschland
WordPress ist ein unglaublich flexibles Content-Management-System (CMS), das es Benutzern ermöglicht, Websites jeder Art zu erstellen und zu verwalten. Eine häufige Anforderung bei der Arbeit mit WordPress ist die Anzeige von Kategorien, insbesondere der Elternkategorie, innerhalb eines Loops. Dieser Artikel richtet sich an WordPress-Entwickler und Website-Betreiber in Deutschland und bietet einen detaillierten Leitfaden, wie man dies effektiv umsetzt.
Grundlagen von Kategorien in WordPress
Bevor wir in die spezifischen Code-Beispiele eintauchen, ist es wichtig, die Grundlagen von Kategorien in WordPress zu verstehen. Kategorien sind Taxonomien, die zur Gruppierung von Beiträgen dienen. Sie ermöglichen es, Inhalte thematisch zu organisieren und die Navigation für Benutzer zu verbessern. Kategorien können hierarchisch sein, das heißt, es gibt Elternkategorien und Unterkategorien (auch Kindkategorien genannt).
Das Problem: Standardmäßige Anzeige von Kategorien
Standardmäßig zeigt WordPress oft alle Kategorien an, denen ein Beitrag zugeordnet ist. Dies kann problematisch sein, wenn ein Beitrag sowohl einer Eltern- als auch einer Kindkategorie zugeordnet ist. In solchen Fällen möchte man in der Regel nur die Elternkategorie anzeigen, um die Anzeige sauber und übersichtlich zu halten. Dies ist besonders relevant für deutsche Websites, bei denen Präzision und klare Strukturierung oft im Vordergrund stehen.
Lösungsansätze zur Anzeige der Elternkategorie
Es gibt verschiedene Möglichkeiten, dieses Problem zu lösen. Wir werden uns einige der gängigsten und effektivsten Methoden ansehen:
Methode 1: Verwendung von get_the_category()
und wp_get_post_categories()
Diese Methode verwendet die WordPress-Funktionen get_the_category()
und wp_get_post_categories()
, um die Kategorien eines Beitrags abzurufen und dann die Elternkategorie zu identifizieren. Hier ist ein Beispielcode:
<?php
$categories = get_the_category();
if ( ! empty( $categories ) ) {
$parent_category = null;
foreach( $categories as $category ) {
if ( $category->category_parent == 0 ) {
$parent_category = $category;
break; // Stop after finding the first parent category
} else {
$parent_id = $category->category_parent;
$parent_category = get_category($parent_id);
}
}
if ($parent_category) {
echo '<a href="' . esc_url( get_category_link( $parent_category->term_id ) ) . '">' . esc_html( $parent_category->name ) . '</a>';
}
}
?>
Erläuterung:
get_the_category()
ruft ein Array von Kategorieobjekten für den aktuellen Beitrag ab.- Wir iterieren durch dieses Array, um die Kategorie zu finden, deren
category_parent
Eigenschaft 0 ist. Dies deutet auf eine Elternkategorie hin. - Wenn eine Elternkategorie gefunden wird, geben wir einen Link zu dieser Kategorie aus.
- Wenn keine Elternkategorie direkt gefunden wird, suchen wir nach der Eltern ID über category_parent und laden die Elternkategorie mit get_category.
Methode 2: Verwendung von wp_get_object_terms()
und Filtern nach Eltern-ID
Diese Methode verwendet die Funktion wp_get_object_terms()
, um die Terme (in diesem Fall Kategorien) abzurufen und filtert dann nach der Eltern-ID. Hier ist ein Beispielcode:
<?php
$terms = wp_get_object_terms( get_the_ID(), 'category', array( 'orderby' => 'term_id', 'order' => 'ASC' ) );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
$parent_category = null;
foreach ( $terms as $term ) {
if ( $term->parent == 0 ) {
$parent_category = $term;
break;
} else {
$parent_id = $term->parent;
$parent_category = get_term($parent_id, 'category');
}
}
if ($parent_category) {
echo '<a href="' . esc_url( get_term_link( $parent_category ) ) . '">' . esc_html( $parent_category->name ) . '</a>';
}
}
?>
Erläuterung:
wp_get_object_terms()
ruft ein Array von Termobjekten für den aktuellen Beitrag ab.- Wir iterieren durch dieses Array, um den Term zu finden, dessen
parent
Eigenschaft 0 ist. Dies deutet auf eine Elternkategorie hin. - Wenn eine Elternkategorie gefunden wird, geben wir einen Link zu dieser Kategorie aus.
- Wenn keine Elternkategorie direkt gefunden wird, suchen wir nach der Eltern ID über parent und laden die Elternkategorie mit get_term.
Methode 3: Eine angepasste Funktion in der functions.php
Für eine wiederverwendbare Lösung können Sie eine angepasste Funktion in Ihrer functions.php
Datei erstellen. Dies ermöglicht es Ihnen, den Code an verschiedenen Stellen Ihrer Website zu verwenden, ohne ihn jedes Mal neu schreiben zu müssen. Hier ist ein Beispiel:
<?php
function get_parent_category_link() {
$categories = get_the_category();
if ( ! empty( $categories ) ) {
$parent_category = null;
foreach( $categories as $category ) {
if ( $category->category_parent == 0 ) {
$parent_category = $category;
break;
} else {
$parent_id = $category->category_parent;
$parent_category = get_category($parent_id);
}
}
if ($parent_category) {
return '<a href="' . esc_url( get_category_link( $parent_category->term_id ) ) . '">' . esc_html( $parent_category->name ) . '</a>';
}
}
return ''; // Return empty string if no parent category is found
}
// Example usage within the loop:
echo get_parent_category_link();
?>
Erläuterung:
- Wir definieren eine Funktion namens
get_parent_category_link()
. - Innerhalb der Funktion verwenden wir
get_the_category()
, um die Kategorien abzurufen. - Wir iterieren durch die Kategorien, um die Elternkategorie zu finden.
- Die Funktion gibt einen HTML-Link zur Elternkategorie zurück.
- Außerhalb der Funktion, im Loop, rufen wir die Funktion
get_parent_category_link()
auf, um den Link anzuzeigen.
Anpassung und Optimierung für deutsche Websites
Bei der Implementierung dieser Lösungen für deutsche Websites ist es wichtig, einige zusätzliche Aspekte zu berücksichtigen:
Sprachliche Aspekte
Stellen Sie sicher, dass alle Kategorienamen und Beschreibungen auf Deutsch sind. Verwenden Sie gegebenenfalls Plugins für mehrsprachige Websites, um Inhalte in verschiedenen Sprachen anzubieten.
SEO-Optimierung
Nutzen Sie Keywords in den Kategorienamen und Beschreibungen, um die Suchmaschinenoptimierung (SEO) zu verbessern. Achten Sie darauf, dass die Kategorienstruktur logisch und benutzerfreundlich ist, was sich positiv auf das Ranking auswirken kann.
DSGVO-Konformität
Achten Sie darauf, dass Ihre Website den Bestimmungen der Datenschutz-Grundverordnung (DSGVO) entspricht. Dies beinhaltet die transparente Information über die Verwendung von Cookies und die Einholung der Zustimmung der Benutzer zur Datenerfassung.
Fazit
Die Anzeige der Elternkategorie im WordPress-Loop ist eine häufige Anforderung, die mit verschiedenen Methoden gelöst werden kann. Die Wahl der Methode hängt von den spezifischen Anforderungen Ihres Projekts und Ihren Programmierkenntnissen ab. Durch die Berücksichtigung der sprachlichen Aspekte, der SEO-Optimierung und der DSGVO-Konformität können Sie sicherstellen, dass Ihre deutsche WordPress-Website optimal funktioniert und den Bedürfnissen Ihrer Benutzer entspricht.