naden.de Bookmarken

Wordpress function is_in_category();

27. Dezember 2007 | In: Allgemein

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.

  • Beitrag von: naden
Bewertung: najagut
Loading ... Loading ...

Ähnliche Beiträge



3 Kommentare zu Wordpress function is_in_category();

Avatar

Frank

07. Januar 2008 um 09:11:29

sehr schöne Lösung!

Avatar

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.

Avatar

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.

Schreib einen Kommentar

Fülle das Kommentar-Formular vollständig aus oder melde dich über Twitter oder Facebook an.
Sign in with Facebook