Doppeltes Home in der Navigation bei statischer Startseite

  • Ich möchte eine eigentlich ganz einfache Sache machen, nämlich eine Navigation mit statischer erster Seite, die den Namen "Home" bekommen soll. Ich hoffe, dass mir jemand helfen kann. Ich entschuldige mich für den langen Post.

    Es geht um dieses Theme. (Edit: Link gelöscht)

    Das Ganze soll als CMS verwendet werden, d.h. die Startseite ist keine Beitrags-("Post"-)seite, sondern eine statische Seite. Das habe ich unter den Leseeinstellungen im Admin-Bereich auch so eingetragen. Jetzt habe ich das Problem, dass mit meinem Code für die Navigation die Startseite doppelt angezeigt wird: Einmal als "Home" (die lässt sich aber nicht anklicken) und einmal mit dem Titel der Startseite ("Willkommen..."). Das soll natürlich nicht sein; da soll "Home" stehen.
    (Dieser Hinweis hat übrigens überhaupt nichts genützt.)

    So soll es aussehen, wenn ich auf der Startseite bin:
    navi1.jpg

    So soll es aussehen, wenn ich mit der Maus über einen Link fahre:
    navi2.jpg

    So soll es aussehen, wenn ich mich auf einer weiteren Seite befinde, die nicht die Startseite ist:
    navi3.jpg

    Hier ist der Code für meine Navigation

    PHP
    <div id="menu">
        <ul>
            <li><a rel="nofollow" href="<?php echo get_option('home'); ?>/">Home</a></li>
              <?php wp_list_pages('title_li='); ?>
        </ul>
    </div>

    Hier ist der Code für das CSS:

    Einmal editiert, zuletzt von Frau_Braun (26. Juni 2008 um 17:49)

    • 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

  • Einfach die Zeile:

    PHP
    <li><a href="<?php echo get_option('home'); ?>/">Home</a></li>

    [COLOR=#000000]
    rausnehmen.

    Gruß
    Ingo
    [/COLOR]

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

  • Dann mußt Du halt der "Willkommen in..." Seite den Titel "Home" geben. Um dann aber auf der Seite selbst "Willkommen in..." anzuzeigen, müßtest Du ein Seitentemplate erstellen und dort den Willkommens-Titel direkt ausgeben.

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

  • Dann muss ich wohl hier nachkucken, wie das geht. Auf dieser Seite, die ich gerade eben überflogen habe, steht aber auch, dass man eine eigene home.php anlegen kann. Mal sehn, was das gibt.

  • Aha! Da steht's:

    Zitat

    WordPress can be configured to use different Page Templates for different Pages. Toward the bottom of the Write > Page administration panel (or on the sidebar, depending on which version of WordPress you are using) is a drop-down labeled "Page Template." From there you can select which Template will be used when displaying this particular Page.

  • Ja genau, "Creating Your Own Page Templates" ist der richtige Weg.
    Die home.php wird nicht weiter helfen, diese bezieht sich auf die Startseite der Blogeinträge.

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

  • schwachsinn...

    lass wie du es gemacht hast

    Zitat

    [COLOR=#000000] <div id="menu">
    <ul>
    <li><a href="[COLOR=#0000CC]<?php [/COLOR][COLOR=#006600]echo [/COLOR][COLOR=#0000CC]get_option[/COLOR][COLOR=#006600]([/COLOR][COLOR=#CC0000]'home'[/COLOR][COLOR=#006600]); [/COLOR][COLOR=#0000CC]?>[/COLOR]/">Home</a></li>
    [COLOR=#0000CC]<?php wp_list_pages[/COLOR][COLOR=#006600]([/COLOR][COLOR=#CC0000]'title_li=&exclude=5'[/COLOR][COLOR=#006600]); [/COLOR][COLOR=#0000CC]?>
    [/COLOR] </ul>
    </div>[/COLOR]


    ACHTUNG bei &exclude=5 musste natürlich die 5 durch die ID deiner "Willkommen" Seite ersetzen.

  • Na dann viel Spaß mit dem Hervorheben des aktuellen Menüpunktes und dem Hover-Effekt, Herr raz!el :-)

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

  • Ja schön und gut, aber woher weiß der lustige Eintrag:

    HTML
    <li><a href="<?php echo get_option('home'); ?>/">Home</a></li>


    das er grad current_page_item ist?

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

  • Ich sehe da jetzt aber auch keinen großen Vorteil gegenüber einer Lösung, die nur mit wp_list_pages und einem Seiten-Template auskommt. Falls man die Startseite ohnehin etwas anders gestalten möchte, bietet sich das ja förmlich an.

    Was mich eigentlich nur etwas gestört hat ist dieses "schwachsinn...".

    Aber egal, es kann ja jeder machen, was er will und wie er es will.

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

    Einmal editiert, zuletzt von Putzlowitsch (24. Juni 2008 um 15:17)

  • das schwachsinn war nicht direkt auf dich bezogen, aber ein Template für alles zu erstellen halt ich immer für überflüssig. Vorallem wenns sich um die Navigation dreht.

  • Vielen Dank Monsieurdame ra!el, an der Formatzuweisung für Home war ich immer hängen geblieben, wenn versuchte, auf andere Weise vorzugehen. Wenn das klappt, gibt's hier mehrere Sterne!

    Wo kommt if (is_page('willkommen...')) {echo 'class="current_page_item"';} hin? Direkt unter<?php wp_list_pages('title_li=&exclude=5'); ?>

    Fragt Frau Braun

  • Das habe ich jetzt noch mal überprüft, aber es will noch nicht funktionieren. Kann da bitte noch einmal einer draufschauen; ich habe nämlich nur rudimentäre PHP-Kenntnisse.

    Also: Der Ausdruck muss wohl, wenn ich raz!el richtig verstanden habe, entweder so aussehen:

    PHP
    <?php if (is_page('15')) {echo 'class="current_page_item"';} ?>

    oder so:

    PHP
    <?php if (is_page('Willkommen...')) {echo 'class="current_page_item"';} ?>

    Die zweite Lösung gefällt mir nicht so gut, weil ich dann im Code was ändern muss, wenn ich den Pagetitel (slug) ändere.
    So ist jetzt der Code:

    PHP
    <div id="menu">
    <ul>
    <li><a rel="nofollow" href="<?php echo get_option('home'); ?>/">Home</a></li>
    <?php if (is_page('Home')) {echo 'class="current_page_item"';} ?>
      <?php wp_list_pages('title_li=&exclude=15'); ?>
    </ul>
                </div>

    So sieht das jetzt aus:
    navi4.jpg

    Ich habe folgendes beobachtet: Wenn ich mit <?php wp_list_pages('title_li=&exclude=15'); ?> meine Startseite ausschließe, dann verschwindet offensichtlich auch die ID (das sieht man z.B., indem man mit der Maus über den Link "Home" geht und unten in die Statuszeile schaut, da kommt nur die Blog-Adresse), also wird vielleicht die Page-ID gar nicht durch is_page angesprochen?

    Einmal editiert, zuletzt von Frau_Braun (26. Juni 2008 um 17:50)

  • in WP 2.5. und höher gibt es dafür den is_front_page template tag

    da ist dann die ID der Slug und alles andere der Page egal,

    Quick Tipps: Startseite in die Navigation einbinden und wenn sie aktiv ist hervorheben.


    lg

  • Du brauchst nicht unbedingt ein DIV im die UL zu legen, ist ein unnötiges Wrapper Element.

  • Monika, das ist bisherher der eleganteste Vorschlag! Ich bin jetzt fast so weit, aber eine Kleinigkeit fehlt noch. Folgendes steht jetzt in der betreffenden Zeile:

    PHP
    <li <?php if(is_front_page()){echo 'class="page_item current_page_item"';} else { echo 'class="page_item"';}; ?>><a rel="nofollow" href="<?php bloginfo('http://www.meinewebsite.de/blog'); ?>/" title="Home">Home</a></li>

    1. Die Klasse "page_item" habe ich nicht in der CSS definiert; die Sache wird aber trotzdem korrekt für diese Seiten dargestellt, deshalb kann das einfach wegfallen. Wo lösche ich da, ohne dass nötige Information wegfällt?

    2. bloginfo: Das scheint wohl den Titel des Blogs (hier: "Praxis Lieschen Müller") aufzugreifen. Jedenfalls wird man, wenn man sich auf einer Nicht-"Home"-Seite befindet und dann auf "Home" klickt, zu einer nicht existenten Adresse geschickt, nämlich meinewebsite.de/blog/Praxis%20Lieschen%20M%C3%BCller. Wie kann man das ändern?

    Hier noch mal mein Homepage mit den letzten Änderungen.

    Edit: raz!el, danke für den Tip!

    Einmal editiert, zuletzt von Frau_Braun (25. Juni 2008 um 10:59)

Jetzt mitmachen!

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