TwentyTen: Kategorien und Unterkategorien im Menü

  • Hallo,

    wie kann man die Kategorien und Unterkategorien in der bereits festgelegten Hierarchie im Menü anzeigen lassen ohne die gesamte Hierarchie durch Zusammenbauen (Drag and Drop) eines Menüs noch einmal extra abbilden zu müssen?

    Liebe Grüße
    Hugo

    • 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

  • Ähm, das kann jetzt leicht ausarten :-)

    Denn es setzt voraus, dass Du Dich traust, im PHP-Code was zu tun.

    PHP
    <?php wp_list_categories( ); ?>

    gibt einfach die Kategorien an der Stelle aus, wo Du diesen Code hinplatzierst.

    Auf http://codex.wordpress.org/Template_Tags/wp_list_categories findest Du etliche Parameter zum Steuern der Ausgabe.

    Beispiele:

    PHP
    <?php wp_list_categories('exclude=4,7&title_li='); ?>

    schließt die Kategorien mit der ID 4 und 7 aus, und leert außerdem die Überschrift, die sonst ausgegeben würde ("Kategorien").

    PHP
    <?php wp_list_categories('orderby=name&include=3,5,9,16'); ?>

    zeigt nur die Kategorien mit der ID 3, 5, 9 und 16 an, und sortiert nach dem Namen.

    Jedenfalls wird hier immer die Hierarchie automatisch übernommen, außer Du schließt die Unterkategorien mit

    PHP
    <?php wp_list_categories('exclude_tree'); ?>

    aus.

    Wilkommen in Nerd-Land. Ich habe Dich gewarnt :-)

  • Vielen Dank für deine Antwort.

    Wenn du wüsstest, was ich mich alles traue. :mrgreen:

    Also, die Kategorien auf diese Weise auf einer Seite oder in einem Artikel auszugeben ist kein Problem. Aber wie bekomme ich die Kategorien in das herkömmliche TwentyTen-Menü?

  • Was ich eben geschrieben habe, ist nicht für die Ausgabe in Seiten oder Artikeln gedacht, sondern müsste das mitgelieferte Menü ersetzen.
    Wo also in Twenty Ten (in der Datei header.php) steht:

    PHP
    <?php wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'primary' ) ); ?>

    müsste stattdessen dort rein:

    PHP
    <?php wp_list_categories( ); ?>

    Oder Du setzt das Kategorie-Menü darunter. So ein zweizeiliges Menü sieht man auch oft bei den Themen von http://www.studiopress.com.

    Mit dieser Funktion musst Du dann auf das bequeme Drag and Drop Menü verzichten, aber das willst Du ja, weil Du ja die Hierarchie automatisch übernommen haben willst. Vermutlich wirst Du auch das Menü-Layout ein wenig anpassen müssen.

    Und wenn Du auch Seiten angezeigt haben willst, dann setzt Du

    PHP
    <?php wp_list_pages(); ?>

    gleich dazu (http://codex.wordpress.org/Function_Reference/wp_list_pages).

    Könnte also dann im Menübereich in header.php so aussehen:

    PHP
    <ul>
    <?php 
        wp_list_pages(); 
        wp_list_categories( ); 
    ?>
    </ul>

    Oder als zweizeiliges Menü (unterhalb des Primären Menüs von Twenty Ten):

    PHP
    <?php wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'primary' ) ); ?>
    <ul>
    <?php 
        wp_list_categories( ); 
    ?>
    </ul>

    Du wirst relativ viel herumbasteln müssen, sowohl mit den Parametern der Funktionen, als auch mit CSS (Layout).

    Good luck.

  • Das ist schon mal sehr gut. Vielen Dank!

    Ich hatte allerdings gehofft, das Ganze sei irgendwie möglich ohne das Design des Menüs überarbeiten zu müssen.

  • Die nötigen CSS-Klassen- und -ID-Definitionen sind ja schon vorhanden. Die Frage ist nur, wie man die auf wp_list_categories() anwendet.

  • Du wirst Dir jetzt CSS-Basiskenntnisse aneigenen müssen ;-)

    Am besten einfach loslegen, und mit Analogie-Schlüssen verfahren. Schau Dir die CSS-Struktur vom Original-Menü an, und vergleiche sie mit der CSS-Struktur, wie sie von wp_list_categories() erzeugt wird.

    Dann probiere vorsichtige Änderungen in style.css oder wo immer bei Dir die Anweisungen fürs Menü liegen.

  • Nee, werde ich nicht müssen, die habe ich schon. :wink:

    Ich dachte halt nur, dass es auch mit weniger Aufwand möglich wäre. :roll:

  • Es geht übrigens ganz einfach ohne irgendwelche CSS-Anpassungen vornehmen zu müssen, indem man <?php wp_list_categories(); ?> und gegebenenfalls <?php wp_list_pages(); ?> innerhalb folgender div- und ul-Blöcke in der header.php einfügt.

    PHP
    <div class="menu-header">
    <ul id="menu-kategorien-und-seiten" class="menu">
    
    
    </ul>
    </div>
  • Problem bei wp_list_categories

    Wertes Forum,

    danke für die vielen wertvollen Tipps, die ich in diesem Forum gefunden habe. Doch bei der Umsetzung habe ich manchmal noch Probleme, so auch mit der der korrekten Formulierung von wp_list_categories.

    Ich würdeauf der webseite http://www.skoogle.me gerne als zweite Navigationszeile den title "Kategorien" unterdrücken und bestimmte Kategorien ausgeben lassen. Meine Eingabe in meiner header.php lautet:

    <?php wp_list_categories('exclude=title_li&include=17,16,15'); ?>

    Nun werden aber der Titel und nur die erste Kategorie mit der id=17 ausgegeben. Weiß vielleicht jemand, wo der Fehler liegt?

    Beste Grüße
    Claudia

  • Vielen Dank,es kam nun doch anders als ich dachte.

    Je nach Kategorie sollten verschiedene Unterkategorien angezeigt werden. Mein funktionierender Code lautet jetzt:

    ... und es funktioniert. Trotzdem danke,

    Claudia

  • Doppelte Ausgabe eines menu-items in verschiedenen styles

    Ja, die sind wirklich interessant, werde sie bestimmt ausprobieren - sobald ich meine Navigation fertig gestellt habe.

    Es erscheint mir sehr kurios: wenn ich auf meiner Seite http://www.skoogle.me/category/1/1-1/
    in einer Kategorie (z. B. "Unsere Schule") auf eine Unterkategorie (z. B. "Profil") klicke, erscheint die Oberkategorie ("Unsere Schule") DOPPELT.

    einmal im Vordergrund im style der "class= #access a" (in blau)
    und dahinter im style der "class= .current-category-ancestor" (in hellgrün)

    Wie erreiche ich, dass der Button im Vordergrund verschwindet? Ich sitze seit gestern an dem Problem und komme einfach nicht drauf.

Jetzt mitmachen!

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