Dynamic Menu Highlighting

  • Hej,

    ich bastele mir gerade ein Menü in der Sidebar und hätte es auch gern dynamisch gehighlighted.

    Das mache ich so:

    <?php ?>

    <div id="sidebar" role="navigation">

    <ul>
    <li<?php if (is_page('Aktuelles')) { echo " id=\"current\"";}?>><a href="index.php/?page_id=37" title="Aktuelles">Aktuelles</a></li>
    </ul>

    </div>


    und im css:

    #sidebar a:link {
    font-family: Myriad, Helvetica, sans-serif;
    vertical-align: super;
    color: #333333;
    text-decoration: none;}
    #sidebar a:visited {
    color: #666666;
    text-decoration: none;
    font-weight: normal;}
    #sidebar a:active {
    color: #990000;
    text-decoration: none;
    font-weight: normal;}
    #sidebar a:hover {
    color: #990000;}
    #current {
    color: #990000;
    font-weight: bold;}


    Klappt aber nicht... Was mache ich falsch?

    :confused: :confused: :confused:

    • 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

  • Ok, jetzt klappt es ein bisschen...

    Neuer Code:

    <?php ?>

    <div id="sidebar" role="navigation">

    <ul>
    <li<?php if (is_page('Aktuelles')) { echo " id=\"current\"";}?>><a href="index.php/?page_id=20" title="Aktuelles">Aktuelles</a></li>
    <li>&nbsp;</li>

    <li<?php if (is_page('Photo')) { echo " id=\"current\"";}?>><a href="index.php/?page_id=23" title="Photo">Photo</a></li>
    <li<?php if (is_page('Vita')) { echo " id=\"current\"";}?>><a href="index.php/?page_id=25" title="Vita">Vita</a></li>
    <li<?php if (is_page('B&uuml;hne')) { echo " id=\"current\"";}?>><a href="index.php/?page_id=27" title="B&uuml;hne">B&uuml;hne</a></li>
    <li<?php if (is_page('Showreel')) { echo " id=\"current\"";}?>><a href="index.php/?page_id=29" title="Showreel">Showreel</a></li>
    <li<?php if (is_page('Audio')) { echo " id=\"current\"";}?>><a href="index.php/?page_id=31" title="Audio">Audio</a></li>
    <li>&nbsp;</li>

    <li<?php if (is_page('Referenzen')) { echo " id=\"current\"";}?>><a href="index.php/?page_id=35" title="Referenzen">Referenzen</a></li>
    <li<?php if (is_page('Presse')) { echo " id=\"current\"";}?>><a href="index.php/?page_id=33" title="Presse">Presse</a></li>
    <li<?php if (is_page('Download')) { echo " id=\"current\"";}?>><a href="index.php/?page_id=64" title="Download">Download</a></li>
    <li>&nbsp;</li>

    <li<?php if (is_page('Kontakt')) { echo " id=\"current\"";}?>><a href="index.php/?page_id=37" title="Kontakt">Kontakt</a></li>
    <li>&nbsp;</li>
    <li>&nbsp;</li>

    <li<?php if (is_page('Archiv')) { echo " id=\"current\"";}?>><a href="index.php/?page_id=207" title="Archiv">Archiv</a></li>
    <li><?php wp_get_archives('type=monthly'); ?></li>
    </ul>

    </div>
    <!--end Menu-->


    Die aktuelle Seite wird fett dargestellt, aber nicht in der spezifizierten anderen Farbe. Habe mal einen Screenshot gemacht: hier

    Und beim Link auf den letzten Post (die Seite mit dem Blog / Loop) funktioniert nichtmal das fett darstellen.

    Irgendeiner eine Idee?

  • Ha! habe ich gedacht, aber wenn ich das hover aus dem css rausnehme, ändert sich auch nichts 8)

    Du hast nicht vielleicht noch eine Idee?

    Ach, und beim Menüpunkt Bühne wird auch nichts fett dargestellt - ich vermute, dass das am Umlaut liegt. Aber weder 'Bühne' noch 'B&uuml;ne' funktionieren...

    Argh.

  • Active. Ja. Hattest Du ja auch geschrieben... Wer lesen kann, ist klar im Vorteil ;)

    Die Seite ist nicht live, ich habe noch keinen Webspace mit php. Ich kriech da ja auch schon immer mit Firebug rüber, aber wahrscheinlich schiel ich mittlerweile zu doll, um was rausbekommen zu können %-)

    Ich kann aber gerne noch mehr code posten...

    Und das active ist auch unschuldig...

  • Nachdem ich ein anderes Problem gelöst habe, hat sich dieses auch FAST ganz gelöst. Wenn ich das Menü dynamisch erzeuge, gibt es keine Farbprobleme mehr.

    Allerdings habe ich eine kleine Bastelei am Ende des Menüs, um das Archiv und die jeweiligen Monate darzustellen - und da bleibt die Farbe Grau. Bei den untergeordneten Monaten wird der current link nichtmal fett dargestellt.

    Code:
    <?php ?>

    <div id="sidebar" role="navigation">

    <ul>
    <?php wp_list_pages('sort_column=menu_order&depth=0&exclude=74,207&title_li='); ?>

    <li>&nbsp;</li>

    <li<?php if (is_page('Archiv')) { echo " id=\"current\"";}?>><a href="index.php/?page_id=207" title="Archiv">Archiv</a></li>
    <li<?php if (is_page('Archiv')) { ?>><?php wp_get_archives('type=monthly'); ?><?php } ?></li>
    <li<?php if (is_single()) { ?>><?php wp_get_archives('type=monthly'); ?><?php } ?></li>
    <li<?php if (is_month()) { ?>><?php wp_get_archives('type=monthly'); ?><?php } ?></li>
    </ul>

    </div>
    <!--end Menu-->

    CSS:
    #sidebar {
    width: 150px;
    float: left;
    text-align: right;
    line-height: 20px;
    vertical-align:super;}
    #sidebar h2 {
    font-family: Myriad, sans-serif;
    font-size: 14px;
    font-weight: normal;
    color: #000000;
    margin-top: 25px;
    vertical-align:super;}
    #sidebar li {
    list-style: none;}
    #sidebar a:link {
    font-family: Myriad, Helvetica, sans-serif;
    vertical-align: super;
    color: #333333;
    text-decoration: none;}
    #sidebar a:visited {
    color: #666666;
    text-decoration: none;
    font-weight: normal;}
    #sidebar a:hover {
    color: #990000;}
    #sidebar a.space {
    font-family: Myriad, Helvetica, sans-serif;
    vertical-align: super;
    color: #333333;
    text-decoration: none;
    padding-top: 35px;}
    #current {
    color: #990000 !important;
    font-weight: bolder;}
    li.current_page_item a {
    color: #990000 !important;
    font-weight: bolder;}
    li.page_item ul.children {
    display:none;}
    li.current_page_parent ul.children,
    li.current_page_item ul.children {
    display:block;}
    .page-item-23 {
    margin-top: 18px;}
    .page-item-367 {
    margin-top: 18px;}
    .page-item-25 {
    margin-top: 18px;}
    .page-item-33 {
    margin-top: 18px;}
    .page-item-37 {
    margin-top: 18px;}
    .page-item-389 {
    margin-top: 18px;}

    Was muss ich tun, um das auch noch aufzuräumen?

  • tic tic... :mrgreen:

    Also, immer noch folgendes Problem:

    Kann jemand helfen?

Jetzt mitmachen!

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