Template Tag für die nackte Aufzählung

  • Hallo liebe leute!
    Ich arbeite gerade an einem Template für WP 3.2 welches in html5 umgesetz werden soll.
    Dazu möchte ich gerne die neuen html Tags wie z.B. <nav></nav> für die Navigation nutzen.
    (Leider) gibt ja WP mit dem Template Tag

    PHP
    <?php wp_nav_menu( array( 'theme_location' => 'main-menu' ) ); ?>

    schon ein fertigen DIV-Container heraus.
    Ich würde aber die Ausgabe auf

    Code
    <ul>
    <li><a href="#">Seitenname</a></li>
    ...
    </ul>

    beschränken. Ebenso möchte ich gerne die classen und Ids gerne selbst festlegen. Zudem achte ich auf die Benutzerfreundlichkeit so dass ich den Links einen Accesskey und einen Title geben möchte.
    Alles in allem soll die Ausgabe des Templatetags so ausschauen:

    Code
    <ul>
    <li class="nav_active"><a accesskey="1" href="URL" title="Webseitenbeschreibung der Zielseite">Seitenname</a></li>
    <li class="nav_passive"><a accesskey="2" href="URL"  title="Webseitenbeschreibung der  Zielseite">Seitenname</a></li>
    ...
    ...
    </ul>

    Leider finde ich in keinem Template ein solchen Tag der mir diese Ausgabe bietet.
    Ich hoffe das mir geholfen werden kann.
    Vielen Dank!

    • 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

  • Hast du dir die ganzen Parameter von wp_nav_menu() mal angeschaut: http://codex.wordpress.org/Function_Reference/wp_nav_menu

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • Ist es möglich änderungen an der nav-menu-template.php irgendwie in der functions.php einzusetzen?
    Ich würde gerne den Links noch ein title="Beschreibung der Zielseite" einfügen sowie die Classen ändern.
    Jetzt soll das Template ja auch später zum Download angeboten werden.
    Ebenso wenig weiß ich nicht ob nicht mit einem Update die nav-menu-template.php überschreiben wird.

  • Standardmäßig wird der Name der Seite/Kategorie als title genommen. Das title-Attribut des jeweiligen Menüpunktes kannst du aber auch immer direkt im WP-Backend unter Design->Menüs ändern.

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • Das ist mir schon klar, dache nur es gebe eine Möglichkeit die Title Tags automatisch mit sinnvollen Inhalten automatisch zu füllen.
    Wie sieht es denn aus die Classen und Ids zu ändern?

    Ich möchte nur eine unterscheidung zwischen ersten Menüpunkt, aktiven Menüpunkt, passiven Menüpunkt und letztem Menüpunkt haben.
    Eine Id möchte ich garnicht in den Tags haben.

    Die momentane Ausgabe erfolgt so:

    Code
    <ul>
    <li id="menu-item-13" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-2 current_page_item menu-item-13"><a title="Die Startseite des Blogs" href="[URL="http://forum.wordpress-deutschland.org/view-source:http://localhost/wordpress/startseite"]http://localhost/wordpress/startseite[/URL]">Startseite</a></li>
    <li id="menu-item-12" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12"><a title="Dies ist die Testseite 1" href="[URL="http://forum.wordpress-deutschland.org/view-source:http://localhost/wordpress/testseite-1"]http://localhost/wordpress/testseite-1[/URL]">Testseite 1</a></li> 
    </ul>

    Alles viel zu lang. Es soll nur so ausschauen:

    Code
    <ul>
    <li id="firstitem" class="active"><a title="Die Startseite des  Blogs" href="[URL="http://forum.wordpress-deutschland.org/view-source:http://localhost/wordpress/startseite"]http://localhost/wordpress/startseite[/URL]">Startseite</a></li>
    <li id="lastitem" class="passiv"><a title="Dies ist die  Testseite 1" href="[URL="http://forum.wordpress-deutschland.org/view-source:http://localhost/wordpress/testseite-1"]http://localhost/wordpress/testseite-1[/URL]">Testseite 1</a></li> 
    </ul>

    EDIT:
    Mein momentaner Codeschnipsel lautet wie folgt:

    PHP
    <?php wp_nav_menu( array( 'theme_location' => 'top_menu', 'container' => 'nav', 'container_id' => 'top_menu', 'container_class' => '', 'items_wrap' => '<ul>%3$s</ul>', 'menu_class' => '',  ) ); ?>


    Womit die Ausgabe wie folgt ist:

    Code
    <nav id="top_menu" class="menu-top_menu-container"><ul><li id="menu-item-11" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-2 current_page_item menu-item-11"><a href="[URL="http://forum.wordpress-deutschland.org/view-source:http://localhost/wordpress/seite-1/"]http://localhost/wordpress/seite-1/[/URL]">Seite 1</a></li> <li id="menu-item-10" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-10"><a href="[URL="http://forum.wordpress-deutschland.org/view-source:http://localhost/wordpress/seite2/"]http://localhost/wordpress/seite2/[/URL]">Seite 2</a></li> <li id="menu-item-15" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15"><a href="[URL="http://forum.wordpress-deutschland.org/view-source:http://localhost/wordpress/testseite-3/"]http://localhost/wordpress/testseite-3/[/URL]">Seite 3</a></li> </ul></nav>


    Wie griege ich die ganzen unnötigen Klassen weg? Ich brauche nur eine unterscheidung zwischen der ersten, aktiven, passiven und letzten menüpunkten. Die Seiten IDs brauch ich garnicht.
    Hat einer einen Lösungsforschlag für mich??

    Einmal editiert, zuletzt von A.Boras (20. Juli 2011 um 13:08)

  • Ich bin nun ein wenig weiter gekommen.
    Um die IDs sowie Klassen komplett zu entfernen reicht die Folgenden Zeilen in die functions.php einzufügen:

    PHP
    // IDs lösen
    add_filter( 'nav_menu_item_id', create_function( '$a', ' return ""; ') );
    //Classen lösen
    add_filter( 'nav_menu_css_class', create_function( '$a',' return array();' ) );
    add_filter( 'wp_nav_menu', create_function( '$a', 'return str_replace( " class=\"\"","", $a );' ) );

    Jetzt muss ich nur schauen, das ich der aktuellen seite noch die Klasse .active zuweisen kann.
    Hat da einer schon einen Tipp für mich?

Jetzt mitmachen!

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