Trenger hjelp med litt WP-kode

Bjørnar

Gründer
Hei,

Følgende har jeg i functions.php:
Kode:
function get_mymenu($curcat = 0, $depth = 0)
{
	$breadcats = my_get_breadcats($curcat);
	$my_cats = my_get_all_categories();
	$html = "<ul class=\"children\">";
	$categories = $my_cats[$breadcats[$depth]];
	foreach ($categories as $cat)
	{
		$html.= "<li class=\"cat-item\"><a href=\"". get_category_link( $cat->cat_ID ) ."\">". $cat->cat_name ."</a>";
		if ($cat->cat_ID == $breadcats[$depth+1] && $depth<count($breadcats))
		{
			$html.= get_mymenu($curcat, $depth+1);
		}
		$html.= "</li>\n";
	}
	$html.= "</ul>\n";
	return $html;
}

function my_get_all_categories()
{
	static $my_cats = array();
	if (count($my_cats)==0)
	{
		$categories = get_categories('child_of=0');
		foreach ($categories as $cat)
		{
			$my_cats[$cat->category_parent][$cat->cat_ID] = $cat;
		}
	}
	return $my_cats;
}

function my_get_breadcats($curcat = 0)
{
	static $breadcats = array();
	if (count($breadcats)==0)
	{
		$curcat = intval($curcat);
		$breadcats[] = $curcat;
		while($curcat!=0)
		{
			$curcategory = get_category($curcat);
			$curcat = intval($curcategory->category_parent);
			$breadcats[] = $curcat;
		}
		$breadcats = array_reverse($breadcats);
	}
	return $breadcats;
}

Dette har jeg da i sidebar.php:
Kode:
<?= get_mymenu($wp_query->query_vars['cat']); ?>

Dette fungerer fint på 1. level, og 2. level kategorier. Men på 3. level får jeg følgende feil:

Warning: Invalid argument supplied for foreach() in /home/XXX/XXX/XXX/wp-content/themes/lokal/functions.php on line 517

Linje 511-519:
Kode:
function get_mymenu($curcat = 0, $depth = 0)
{
	$breadcats = my_get_breadcats($curcat);
	$my_cats = my_get_all_categories();
	$html = "<ul class=\"children\">";
	$categories = $my_cats[$breadcats[$depth]];
	foreach ($categories as $cat)
	{
		$html.= "<li class=\"cat-item\"><a href=\"". get_category_link( $cat->cat_ID ) ."\">". $cat->cat_name ."</a>";

Men menyen vises forsåvidt riktig, men den tar med følgende
Hovedkategori (nivå 1)
- Underkategori (nivå 2)
- - Underkategori (nivå 3)
- Underkategori (nivå 2)
- - Underkategori (nivå 3)
- - Underkategori (nivå 3)
- - Underkategori (nivå 3)

Jeg ønsker at den kun skal ta med
Hovedkategori (nivå 1)
- Underkategori (nivå 2)
- - Underkategori (nivå 3)

Dersom man går inn på siste nivå - ikke siste nivå for alle kategoriene. Vanskelig forklart...

I tillegg, dersom man da går inn på en post tilhørende en kategori på nivå 3, så viser den kun hovedkategorien - og ikke den aktuelle kategoriene og tilhørende tre man er på.

Noen kloke hoder som kan dytte meg i riktig retning? :)
 
Topp