Unterkategorien anzeigen

  • 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:

    1. Auslesen in welcher der Hauptkategorien (1. Ebene) sich die Seite befindet (single, archiv, oder was auch immer).
    2. 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

    Ausgabe der Informationen

    PHP
    <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

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Mehrere Anmerkungen: Die Kategorie lässt sich im im Archiv und bei Home nicht auslesen, einfach weil es keine festgelegte gibt (unter der Annahme, dass nicht explizit eine Kategorie ausgewählt wird). Zudem gibt es $post nur, wenn du dich in der Single-Ansicht befindest. Und zu guter letzt durchläuft deine for-Schleife sämtliche Kategorien, wobei die letzte aber üblicherse eine Subkategorie ist.

    Ich hatte mal für ein Projekt etwas ähnliches geschrieben. Die folgende Funktion liefert dir die ID der aktuellen oder, falls möglich, die ID der Elternkategorie. Der Code ist nicht wirklich schön, das gebe ich zu, da an WordPress vorbei gecodet wurde - aber es erfüllt seinen Zweck.

    Gruß Jeriko

    Jeriko - Design, Style, Photographie

  • Hallo Jeriko,

    das ist genau das was ich gesucht habe, danke. Funktioniert einwandfrei. Jetzt habe ich nur noch ein Problem:

    - Die Ausgabe des Kategorie-Namens

    Anhand der ID kann ich zumindest einiges bestimmen. Nur wenn ich das richtig sehe, fehlt mir eine Funktion die mir den Namen der Kategorie ausgibt, anhand der ID. Habe nur category_description gefunden, die jedoch dafür etwas fehl am Platze ist.

    Vielen Dank

    Grüße
    Patrick

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!