kulturbanause Blog

Responsive Design, WordPress, Konzeption, HTML, CSS, JS & UX/UI …

WordPress: Prüfen ob sich ein User in Kategorie X (Parent-Category) oder in einer untergeordneten Kategorie von X (Child-Category) befindet

Manchmal möchten wir Inhalte in einem WordPress-Theme nur dann ausgeben, wenn sich der Besucher in einer bestimmten Kategorie bzw. in einer untergeordneten Kategorie befindet. Wenn es sich um ein Kundenprojekt handelt, kann der Kunde natürlich selbst neue Unterkategorien (Child-Categories) anlegen die wir bei der Erstellung des Themes noch nicht kennen und folglich auch nicht berücksichtigen können. Das Snippet muss also auf der ID, bzw. dem Namen der Hauptkategorie (Parent-Category) basieren. Gerade wenn ihr mit Custom Post Types arbeitet kann ein solcher Fall schnell auftreten.

Workshops und Seminare von kulturbanause

Visual Prototyping, Responsive Design, CSS Grid & Flexbox, Sketch, Adobe XD …

Jetzt Frühbucher-Rabatte sichern!

Snippet für die functions.php/Template-File

Das folgende Snippet könnt ihr global in der functions.php verwalten oder direkt in das gewünschte Template (z.B. sidebar.php) kopieren.


<?php
function post_is_in_descendant_category( $cats, $_post = null )
{
	foreach ( (array) $cats as $cat ) {
		$descendants = get_term_children( (int) $cat, 'category');
		if ( $descendants && in_category( $descendants, $_post ) )
			return true;
	}
	return false;
}
?>

Ausgabe im Theme

Um den gewünschten Inhalt nun auszugeben, kopiert ihr das nachfolgende Snippet an die Stelle an der die Ausgabe erfolgen soll. Achtet darauf die IDs durch die in Eurem Theme verwendeten IDs zu ersetzen.


<?php if (is_category('3') || post_is_in_descendant_category( 3 )) { ?>

<p>Dieser Text ist sichtbar, wenn die Kategorie mit der ID 3 bzw. eine untergeordnete Kategorie aufgerufen ist. </p>
   
<?php } ?>

codex.wordpress.org/Function_Reference/in_category

Jetzt bist du gefragt!

Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Du kannst diesen Beitrag natürlich auch weiterempfehlen. Wir sind dir für jede Unterstützung dankbar!

Unterstützung bei WordPress-Projekten

Unsere WordPress Agentur ist auf die Entwicklung maßgeschneiderter WordPress-Themes und -Websites spezialisiert. Wenn du Unterstützung bei der Planung, Gestaltung und Entwicklung eines Projekts benötigst, helfen wir gerne weiter.
WordPress-Leistungsangebot →

Das könnte dich auch interessieren

1 Kommentar

  1. Michael

    Verfasst am 29. August 2011 um 22:33 Uhr.

    Sowas in der Art wurde hier schonmal vor langer Zeit gepostet: http://wpengineer.com/876/exclude-subcategories-in-a-loop/

Kommentar verfassen

Dieser Blog lebt vom Feedback der Besucher! Also los, mach mit!
Bitte habe Verständnis dafür, dass Kommentare die mit dem Inhalt dieses Beitrags nichts zu tun haben, gelöscht werden.