Wordpress function is_in_category();
27. Dezember 2007 | In: Wordpress
Wordpress bietet zum Handling von Kategorie-Entscheidungen zwei Funktionen. “is_category( /* category_id || category_name */ )” liefert true oder false, je nachdem, ob man sich auf der angefragten Kategorie-Seite befindet. “in_category( /* category_id */ )” liefert auf einer Beitragsseite ausserhalb von “the_loop();” die Information, ob sich der aktuelle Beitrag in der angefragten Kategorie befindet.
Schwach ist, dass “in_category” nicht funktioniert, wenn es sich um eine Unterkategorie, z.B. “PHP -> Snippets” handelt. Die Funktion erlaubt nur einen Paramater und dieser muß auch noch numerisch sein.
Etwas Erleichterung schafft der schnelle Hack “is_in_category()”. Zwar funktioniert dieser nicht rekursiv, hilft aber gegen x-mal wiederholte in_category()-Berge.
function is_in_category( ) { if( func_num_args() > 0 ) { foreach( func_get_args() as $category ) { if( in_category( $category ) ) { return( true ); } } } return( false ); } |
Der Aufruf if( is_in_category( 3, 5, 6 ) ) liefert true, wenn sich der abtuelle Post in einer der Kategorien befindet. False sonst.

3 Kommentare zu Wordpress function is_in_category();
Frank
07. Januar 2008 um 09:11:29
sehr schöne Lösung!
Bastian
14. Januar 2008 um 00:07:47
Besteht dieses Problem nur bei Wordpress 2.3. Ich hatte nach der 2.3 Installation Problemen mit meinen Kategorien und deshalb noch nicht alle Blogs upgedatet.
naden
14. Januar 2008 um 11:00:57
Das “Problem” bestand schon immer. Möglicherweise werden diese Funktionen ja in zukünftigen Wordpress Versionen rekursiv.