WordPress Kategorie vorhanden

Schon mal versucht in WordPress eine Kategorie zu prüfen, ist sie vorhanden? Wer sich damit beschäftigt, weis, dass es keinen Template Tag dafür gibt und man eine eigene Lösung erstellen muss. In meiner Lösungskiste habe ich dafür 3 unterschiedliche Möglichkeiten erarbeitet, wobei allerdings eine Lösung nur im Rahmen des Adminbereiches funktioniert.

WordPress Logo
Schon mal versucht in WordPress eine Kategorie zu prüfen, ist sie vorhanden? Wer sich damit beschäftigt, weis, dass es keinen Template Tag dafür gibt und man eine eigene Lösung erstellen muss.
In meiner Lösungskiste habe ich dafür 3 unterschiedliche Möglichkeiten erarbeitet, wobei allerdings eine Lösung nur im Rahmen des Admin-Bereiches funktioniert.

Die einzelnen Lösungen sollen nicht groß erklärt werden und sind sicher im Code verständlich. Alternativ kann man sich auch eine eigene Funktion erstellen und die dann als Aufruf nutzen, quasi ein eigene Template Tag für das Theme. Dazu die Funktion in die functions.php des Themes legen und dann darauf zugreifen.

Um den Code zu verstehen, habe ich als Beispiel entweder die Kategorie mit dem Namen „Uncategorized“ genutzt oder die ID 1. Diese Werte müssen natürlich an das jeweilige Theme angepasst werden.


<?php
/**
 * nur im Admin-Bereich
 * 
 * @param string $cat_name
 */
if ( is_admin() && category_exists('uncategorized') ) // cat_slug, cat_name
	return true;

/**
 * außerhalb des Admin
 *
 * is_term($term, $taxonomy = '')
 * @param int|string $term The term to check
 * @param string $taxonomy The taxonomy name to use
 */
if ( is_term( 'uncategorized' , 'category' ) ) // cat_slug, cat_name
	return true;
else
	return false;

/**
 * außerhalb des Admin
 *
 * get_category( $category, $output = OBJECT, $filter = 'raw' )
 * @param int|object $category Category ID or Category row object
 * @param string $output Optional. Constant OBJECT, ARRAY_A, or ARRAY_N
 * @param string $filter Optional. Default is raw or no WordPress defined filter will applied.

 */
$cat = get_category(1); // cat_ID
if ( !empty( $cat ) )
	return true;
?>

Comments are closed.