Hallo Leute,
ich habe ein Design, welches Kategorien und Unterkategorien trennt. Die Hauptkategorien werden in der header.php statisch reingeschrieben und verlinkt. Die Unterkategorien sollen über die Sidebar angezeigt werden. Dafür wird "Sidebar Widget Manager" verwendet.
Aufbau der Kategorien ist ganz natürlich:
- Blumen
-- Tulpen
-- Rosen
-- Orchideen
- Dachformen
-- Steildach
-- Flachdach
- Automarken
-- BMW
-- AUDI
Das ganze ist nur auf zwei Ebenen verteilt und soll jetzt eingebunden werdne. Die Hauptkategorien sind bereits verlinkt. Jetzt möchte ich:
- Auslesen in welcher der Hauptkategorien (1. Ebene) sich die Seite befindet (single, archiv, oder was auch immer).
- Das Anzeigen der Unterkategorien (von der Hauptkategorie, in der sich die aktuelle Seite befindet) in der Sidebar bewirken. Dafür benötige ich wohl die ID der obersten Kategorie ("Hauptkategorie").
Mein bisher erwirkter Code gibt wirre Ergebnisse aus und soll nicht zur Verwirrung sondern nur zur eventuellen Erleichterung des Verständnisses gelten:
Datenbeschaffung und -festlegung
$post = $wp_query->post;
$categories = array(
1 => array("Garten",1),
2 => array("Blumen",31),
3 => array("Autos",33),
4 => array("Gesellschaft",35),
5 => array("Gesundheit",36),
6 => array("Medien",38),
7 => array("Weiterbildung",42),
);
foreach($categories as $cat) {
if( in_category($cat[1]) ) {
$maincat = $cat[0];
}
}
Alles anzeigen
Ausgabe der Informationen
<div class="sidebarbox" id="navigation">
<span class="sbarheadline"><?php if(!is_home()) echo $maincat; else echo 'Startseite'; ?></span>
<ul id="liste-kategorien">
<?php wp_list_cats('sort_column=name&optioncount=0&hide_empty=0&child_of='.$maincat); ?>
</ul>
</div>
Zum Array: Die Beschreibung ist in Anführungsstrichen, die Zahl dahinter entspricht der ID der Kategorie in Wordpress. Deshalb das zweidimensionale Array (hätte man evtl. auch anders lösen können).
Problem beim aktuellen Code ist: Wordpress sagt so, dass die Seite jeder Kategorie zugehört. Die letzte Kategorie, welche als Maincat zugewiesen wird, wird dann in der "sbarheadline" ausgegeben. So ist immer die Headline und immer die Ausgabe der Unterkategorien falsch. Ich weis aber nun nicht wo die Fehler liegen und bitte daher um eine Schilderung eurer Ideallösung.
Vielen Dank!
Beste Grüße
Patrick