current navigation highlighting

  • Hallo liebe Webdesigner,

    ich habe folgendes Problemchen:
    Für ein Restaurant erstelle ich gerade eine Internetpräsenz, mit mehren Seiten und auch Untermenu`s. Dazu verwende ich das PHP von WordPress.
    Nun kann man ja bei Statischen html-Seiten via CSS den aktiven Tap (oder Menu) hervorheben, so das der Besucher weiss wo er sich gerade befindet.
    Nun gibt es mit PHP aber nur noch eine einzige Seite, so das mein Wissen nicht mehr ausreicht auch mit PHP eine ganz bestimmte Seite zu markieren.
    Ich habe mal was gelesen das man PHP dazu bringen kann den Aktuellen Seitennamen in der Addresszeile des Browsers auslesen zu lassen, doch komme ich da nicht weiter.

    Hat vielleicht jemand eine Lösung parat für mein Anliegen?

    Gruss andalusi.

    • 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

  • WordPress vergibt bei der Ausgabe der Seitenliste/Navigation für die gerade aktive Seite die CSS-Klasse current_page_item, so dass dieses Listenitem per CSS speziell formatiert werden kann.

    Das geht aber nur automatisch, wenn man die Seitenliste mit Hilfe von WordPress (wp_list_pages) ausgibt und nicht manuell zusammenbaut.

  • Danke für Deine schnelle Antwort.
    Leider kann ich dir nicht folgen, mein Wissen ist noch sehr begrenzt.
    Es handelt sich um diese WP-Seite:
    http://www.restaurant-seehof.de

    Ich habe dazu das "Starkers-Theme" (nacked) verwendet und mit einer CSS Datei den Style gemacht.
    Die einzelnen Seiten die man in der linken Seitenleiste aufrufen kann habe ich mit dem WP-Backend erstellt.

    Kannst Du mir bitte etwas genauer erklären wo genau ich den Hebel ansetzen muss?

    Vielen Dank, Gruss andalusi

  • Im Moment sehe ich leider nur die weiße Seite aus dem anderen Thread :sad:

    In der linken Navigation sollte so etwas Ähnliches wie

    Code
    .sidebar .current_page_item {border:red solid 5px;}

    funktionieren. In der Navigation oben funktioniert das nicht so einfach, weil die scheinbar statisch in der entsprechenden Template-Datei steht und nicht von WordPress erzeugt wird (Warum eigentlich?).

  • Danke für Deine schnelle Antwort.
    Leider kann ich dir nicht folgen, mein Wissen ist noch sehr begrenzt.
    Es handelt sich um diese WP-Seite:
    http://www.restaurant-seehof.de

    Ich habe dazu das "Starkers-Theme" (nacked) verwendet und mit einer CSS Datei den Style gemacht.
    Die einzelnen Seiten die man in der linken Seitenleiste aufrufen kann habe ich mit dem WP-Backend erstellt.

    Kannst Du mir bitte etwas genauer erklären wo genau ich den Hebel ansetzen muss?

    Vielen Dank, Gruss andalusi

    Hallo,

    wenn Spickzettel's erklärung noch zu schwierig für dich (ich bin auch anfänger :p) vielleicht hilft dieses Video, wie mann current_page_item im style.css einfügen kann.

    Gruß.

  • Hat ja in der Sidebar schon mal funktioniert :razz:

    In der Navigation oben könnte man das so lösen (am Beispiel der ersten Zeile):

    PHP
    <li><a href="?page_id=66"<?php if (is_page(66)) {echo ' class="current_page_item"';} ?>>A la carte</a></li>

    Übersetzung: Wenn man sich auf der Seite mit der ID 66 befindet, wird die CSS-Klasse current_page_item hinzugefügt. Für die anderen Links analog mit der jeweiligen ID.

    Ergänzung in der CSS-Datei:

    Code
    .mainbar .current_page_item{
    background-color: #59002E;
    }
  • Ich ernenne "Spickzettel" hiermit ganz offiziell zum WordPress Profi :-)
    Er oder Sie hat mir an nur einem einzigen Nachmittag mit einem (für mich) ziemlich grossen Problem geholfen.

    DANKESCHÖN SPICKZETTEL :-)

  • Hallo nachmals :-)

    Im Grunde bin ich ja schon sehr zufrieden mit der Seite http://www.seehofleineck.de doch wenn man eine Seite des jeweiligen Untermenu besucht, verschwindet das highlighting des Hauptmenus.

    Wäre es nicht schön wenn man auch in einem Untermenu weiss, in welchen Hauptmenu man denn gerade ist?

    Zum Beispiel:
    Ich bin im Hauptmenu "Cocktailbar" und dort im Untermenu "Cocktail des Monats".
    Momentan ist dann nur das Untermenu "Cocktail des Monats" markiert.
    Das man aber im Hauptmenu "Cocktailbar" ist, weiss man leider nicht :-(

  • wenn das menu mit 'wp_list_pages()' gemacht ist, scheint es folgende classes mit auszugeben (abhaengig ob die seite einen parent oder eine noch aeltere generation davor hat):

    current_page_parent
    current_page_ancestor

    http://codex.wordpress.org/Template_Tags/…g_of_page_items

    bgeissler:
    in der 'muehltal' site scheint da kein parent/child seitenverhaeltnis zu bestehen.
    (zB 'veranstaltungen' scheint keine unterseite von 'catering&higlights' zu sein.)

    andalusiWEBDESIGN
    wenn das nicht zu dynamisch werden soll, geht vielleicht die erweiterung der von spickzettel vorgeschlagenen if-abfrage; die unterseiten mit einbeziehen ('speisekarte' z.zt. weggelassen):

    PHP
    <li><a href="?page_id=68"<?php if ( is_page(68) || is_page(99) || is_page(101) || is_page(103) ) {echo ' class="current_page_item"';} ?>>Cocktailbar</a></li>

  • bgeissler:
    in der 'muehltal' site scheint da kein parent/child seitenverhaeltnis zu bestehen.
    (zB 'veranstaltungen' scheint keine unterseite von 'catering&higlights' zu sein.)


    Das stimmt. Hab es mit if-Abfragen aufgebaut. Werde es mal umbauen und entspr. formatieren, vielen Dank.

  • Hier mal mein CSS (ich habe nur die CSS-Datei verändert!)
    (Theme siehe im Text):

    Vielleicht bringt das ja einen Hinweis?!

    :mrgreen:

  • Hattest Du was an den Bildern geaendert?
    Die sind meiner Meinung nach immer noch bescheiden bis sehr schlecht.
    ... und die Ladezeiten sind nicht tragbar.
    Hat der die Seite bei sich im restaurant auf dem Rechner liegen?

    Gruss
    aao_scout


    Edit sagt:
    Sorry, falscher Fred.

  • Mich würde interssieren, wie man bei einer aktiven Unterseite auch die dazugehörige Hauptseite noch mit der aktiven CSS-Beschreibung definieren kann.

    Konkret folgendes:
    http://roger.irene-hofer.ch

    Bei einer aktivierten Unterseite soll darüber noch immer der blaue Streifen vorhanden sein. Wie kriege ich dies hin?

Jetzt mitmachen!

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