"Home"-Link in wp_nav_menu nicht möglich

  • Hallo zusammen!
    Ich benutze seit kurzem WP 3.0 und versuche derzeitmit der neuen Funktion wp_nav_menu ein Menü in meine Seite einzubauen. Soweit so gut - mit Seiten, Kategorien und Artikeln funktioniert as 1A!

    Das schöne ist, dass je nach gewählter Kategorie/Artikel automatisch die Klasse class="current-menu-item" zum dazu passenden Menüpunkt hinzugefügt wird - so wird das Styling der Elemente sehr einfach.

    Wenn ich nun aber einen "Home"-Button hinzufügen will, der ja weder Seite noch Artikel ist, sondern einfach durch die home.php erzeugt wird, funktioniert das nicht mehr. Hat da jemand einen Tipp für mich, wie ich einen Homelink ins Menü einfügen kann, der automatisch auch die CSS-Klasse bekommt?

    Im englischen Support-Forum habe ich auch schon was dazu gefunden. Allerdings gabs dafür anscheinend keine 100%tige Lösung:
    http://wordpress.org/support/topic/394541

    Viele Grüße
    lundj

    • 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

  • ich wusste gar nicht, dass schon wieder Ostern ist

    Nachdem ich nochmal den englischen Bugtracker-Eintrag durchforstet und auf fünf verschiedenen Tickets zu diesem Thema gelandet war, habe ich die Lösung gefunden: Wenn man einen Startseitenlink einfügen möchte, muss man im Reiter "Seiten" auf "Zeige alle" klicken. Dann bekommt man auch den Eintrag "Startseite" geliefert.

    Meiner Meinung nach ist das eine wirklich ungünstige Lösung, die Startseite so dermaßen zu verstecken. Warum ist sie nicht in der Übersicht der Seiten vertreten??? Das schlimmste an der Stelle: Wenn der Blog keine Seiten enthält, wird die Schaltfläche "Alle anzeigen" ja nicht mal eingeblendet...

    Was meint ihr dazu?

    Viele Grüße
    lundj

    Einmal editiert, zuletzt von lundj (15. Juli 2010 um 18:09)

  • Binde in deiner Navigation folgenden Code in das <ul></ul> ein:

    PHP
    <?php if (is_home()) { ?>
        <li class="current_page_item"><a href="<?php echo get_settings('home'); ?>" title="Startseite">Startseite</a></li>
      <?php } else { ?>
        <li><a href="<?php echo get_settings('home'); ?>" title="Startseite">Startseite</a></li>
      <?php } ?>

    Dieser Code bezweckt, dass auf der Startseite dem <li> die "current_page_item" Klasse zugewiesen wird und auf allen anderen Seiten nicht... :-)


  • Hi!
    Mit dem neuen wp-nav-menu von Wordpress 3 kann man aber im Backend das Menü ganz einfach zusammenstellen - nur die Möglichkeit die Startseite hinzuzufügen ist sehr versteckt. Durch das neeu wp-nav-menu werden auch automatisch die "current-item" - Klassen vergeben. Wenn gar keine Seiten vom Nutzer erstellt wurden fehlt der Eintrag im Backend völlig. Darum habe ich ein Ticket verfasst.

    Die Möglichkeit die Startseite hinzuzufügen wurde erst durch dieses Ticket möglich: http://core.trac.wordpress.org/ticket/13213 und im Changeset http://core.trac.wordpress.org/changeset/14971 in die finale Version von WP 3.0 übernommen. Nur bin ich der Meinung das dieser "Startseiten"-Link im Backend-Bereich "Menüs" zu sehr versteckt ist.

    Ich hoffe ihr versteht jetzt besser, was ich meine ;-) Möglicherweise nutzen noch nicht so viele von euch diese neue Funktion...

    Viele Grüße
    Florian

    Einmal editiert, zuletzt von lundj (16. Juli 2010 um 18:52)

  • WP3 in WP2 vintage mode?

    Kann mir jemand erklären, wie man überhaupt in den Genuss der neuen Funktionen bekommt, ohne Twenty Ten zu aktivieren?
    Es muss doch möglich sein, andere Themes entsprechend zu aktualisieren?
    ???

    Ich wünschte, ich hätte den Luxus einer – wenn auch versteckten – Homepage-Funktion. Mein selbsterstelltes Theme will nämlich die home.php nicht erkennen. Die Titelleiste (der Browser-Tab) sagt "404 – Seite nicht gefunden", wenn ich auf Home klicke. Die Definitionen aus der home.php werden nicht angezeigt, das Layout bleibt auf index.php-Level.

    WP 3.4.2 | MAMP 2.1.1 | MBP OSX 10.6.8

    Einmal editiert, zuletzt von Demjenigen (29. August 2010 um 20:14)

  • Zitat von lundj

    Wenn man einen Startseitenlink einfügen möchte, muss man im Reiter "Seiten" auf "Zeige alle" klicken. Dann bekommt man auch den Eintrag "Startseite" geliefert.

    Oder du fügst einen Link zu deiner URL ein und nennst diesen "Startseite" oder "Home" o.ä.

    Zitat von Demjenigen

    Kann mir jemand erklären, wie man überhaupt in den Genuss der neuen Funktionen bekommt, ohne Twenty Ten zu aktivieren?
    Es muss doch möglich sein, andere Themes entsprechend zu aktualisieren?

    Dafür musst du dein eigenes Theme etwas erweitern.
    1. musst du das nav_menu in der functions.php registrieren:

    PHP
    <?php
        register_nav_menu( 'primary', 'Primary Navigation Menu' );
    ?>

    2 erfolgt der Aufruf des wp_nav_menu() dann anstelle des wp_list_pages() bzw. wp_list_categories() an gewünschter Stelle:

    PHP
    <?php 
    wp_nav_menu( array( 'theme_location' => 'primary') ); 
    ?>

    Du kannst auch 2 oder 3 nav-menüs registieren und an unterschiedlichen Stellen dann aufrufen.

    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]

  • Um mehrere Menüs einzubinden, musst du verschiedene Menüs registrieren:
    [LEFT]

    PHP
    <?php
        register_nav_menu( 'primary', 'Primary Navigation Menu' );
        register_nav_menu( 'secondary', 'Secondary Navigation Menu' );
        register_nav_menu( 'footermenu', 'Footer Menu' );
    ?>

    [/LEFT]
    und dann eben halt da aufrufen wo du sie haben willst:
    [LEFT]

    PHP
    <?php 
    wp_nav_menu( array( 'theme_location' => 'primary') ); 
    ?>
    
    
    
    
       <?php 
    wp_nav_menu( array( 'theme_location' => 'footermenu') ); 
    ?>

    [/LEFT]

    [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]

  • Hat geklappt.
    Allerdings habe ich eine Weile rumgefrickelt, weil ich zunächst eine andere Schreibweise hatte -->

    PHP
    if ( function_exists( 'register_nav_menus' ) ) {
            register_nav_menus(
                array(
                  'menu_1' => 'Menu 1',
                  'menu_2' => 'Menu 2'
                )
            );
        }

    --> und die funktionierte rein gar nicht. Nur noch ein weißes Fenster statt Theme.

    Dabei hatte ich das einfach aus einem anderen Theme herauskopiert.
    Ich verstehe nicht, warum diese Schreibweise nicht funktioniert, bin aber froh, dass ich's über Deine (maxe) Schreibweise hinbekomme.

    WP 3.4.2 | MAMP 2.1.1 | MBP OSX 10.6.8

  • sollte aber auch mit dieser Schreibweise klappen: http://codex.wordpress.org/Function_Refer…ister_nav_menus

    [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]

  • Code tut nicht

    Was mach ich falsch?
    Wenn ich das folgende Snippet aus http://codex.wordpress.org einfüge, lediglich meine eigenen Namen angebe und die andere Variante (darunter) auskommentiere, ist das Backend wieder weg/weißes Browserfenster.

    Die drei unteren Zeilen funktionieren.

    Topnavigation super,
    Die Zielgruppennavigation zeigt nur den ersten Menüpunkt an, aber da bin ich noch am Probieren, ob's am CSS liegt...

    Es gibt aber noch ein weiteres Verständnisproblem:
    Wenn ich im Backend ein Menü erstelle und ihm einen Namen gebe, müsste das doch ausreichen. Warum also dieses Doppel-Gemoppel mit einerseits in functions.php Menüs registrieren, nur damit ich andererseits im Backend das Menü Top der "Anordnung im Theme" Top zuordne, das Menü Zielgruppe der "Anordnung im Theme" Zielgruppe etc.

    Oder mach ich da tatsächlich einen Bogen zuviel? ...

    WP 3.4.2 | MAMP 2.1.1 | MBP OSX 10.6.8

    Einmal editiert, zuletzt von Demjenigen (18. September 2010 um 17:02)

  • Teil 1 hat sich erledigt, eine dumme Klammer war's.

    Meine Schwierigkeiten mit einem der Menüs sowie mit dem grundsätzlichen Verständnis bleiben.

    Edit 20.9.2010: Ich eröffne einen eigenen Thread zum Thema "Grundsatzverständnis" mit diesem Thema. Ist ja doch ein bisschen off-topic hier.
    Edit 21.9.: Das zweite Menü ist repariert. War ein CSS-Problem, kein WP.

    WP 3.4.2 | MAMP 2.1.1 | MBP OSX 10.6.8

    Einmal editiert, zuletzt von Demjenigen (21. September 2010 um 10:25)

Jetzt mitmachen!

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