Frage zu:Artikel der Kategorie X auf Seite Y anzeigen

  • Hallo,

    ich habe in meinem Blog nach der o.g. FAQ ein Seitentemplate angelegt und der statischen Seite zugewiesen. Das Funktioniert soweit sehr schön.

    Ich bekomme es aber nicht hin, dass die statische Seite im Menü auch als class=active gesetzt ist, d.h. nachdem ich auf den Menüpunkt klicke, wird die Seite mit den Posts angezeigt, aber der Menüpunkt ist nicht ausgewählt.

    Beispiel: http://www.spd-allendorf.de ==> menüpunkt Anträge

    Habe ihr Ideen, wie ich das hinbekomme. Ich habe schon mehrere Versuche mit unterschiedlichen Template-Vorlagen page.php, index.php etc. gemacht. Das beste Ergebnis bekomme ich mit der index.php.

    VG Harald

    • 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

  • Danke für den Hinweis. Hab den Teil gefunden, der höchstwahrscheinlich verantwortlich ist.

    Code
    .art-menu a.active .l, .art-menu a.active .r
    {
      top: -52px;
    }
    
    
    .art-menu a.active .t
    {
      color: #EDEDED;
    }

    Nur was mach ich jetzt damit? In der Nativprogrammierung könnte ich die Klasse setzen, aber wie sag ich WP? :neutral:

  • Den Link gibt es über den Menübutton, wenn ich auf einer andere Seite bin und Anträge auswähle, werden die Posts angezeigt, aber der Menüpunkt nicht aktiviert. Sobald ich das "query_posts('category_name=Antraege');" rausnehme, wird der Menüpunkt nach dem klicken aktiviert.


    WP verhalt sich so wie beim Auswählen eines Kategoriearchives über die Sidebar. Könnte es sein, dass in dem query_posts('category_name=Antraege');
    diese Aktivierung gezielt rausgenommen wird?

    Einmal editiert, zuletzt von hak (24. Januar 2011 um 13:40)

  • Hab nochmal ein wenig nach der Sache geforscht. Letztlich gibt es in der navigation.php ein function start_el, die function baut das Menü auf. Hier wird geprüft ob der Eintrag active ist, falls ja wird das entsprechend verwurstet.

    Ich bin nur wenig WP-Erfahren, habe aber den Eindruck, das ich nur mit Tricks (evtl. globale Variable) mein Ziel erreichen kann.

    Ich könnte in meinen Seitentemplate eine Variable x=true setzen und dann in der function start_el auf active or x prüfen.

    Ich finde das von der Programmierung allerdings etwas unsauber und brachial.

    Gibt es da elegantere Lösungen?

  • Ähnliches Problem hatte ich auch...nach statischer Startseite und mehreren Seiten mit News wurde der Menupunkt "Blog" mit einem query-post nicht (mehr) als aktiv gekennzeichnet.

    Aus einem mir bisher unerfindlichen Grund wird die Menü-ID der "Blog-Seite" mit query_posts wohl nicht ins Array active übernommen.

    Ich hab es so gelöst:

    In der

    PHP
    function _art_menu_item_classes_by_context



    unter

    PHP
    $active_ID = $menu_item->ID;
       }
      }
     }



    und über

    PHP
    $currentID = $active_ID;



    eingefügt:

    PHP
    if(is_home()) { //passt bei mir so, evtl. muss man auch die Seiten-ID der Seite abfragen, die nicht markiert wird mit $post->ID //
    $active_ID=1667;
    }



    1667 ist dabei die ID des Menüeintrages - nicht die SeitenID!!.

    Diese ID habe ich mir in derselben Funktion unter

    PHP
    foreach ( (array) $menu_items as $key => $menu_item ) {



    mit

    PHP
    echo  $menu_item->ID."--->$key<BR>";



    ausgeben lassen. Das habe ich nach Herausfinden der ID natürlich wieder auskommentiert.

  • Hab versucht die Menü-ID herauszufinden.

    Wenn ich die navigation.php lösche, bekomme ich einen Fehler, wenn ich aber eine Echo 'xxxxxxxxxxxxxxxxxx'; an den Beginn der Funktion schreibe, sehe ich nichts (auch nicht im Quelltext);

    Die Funktion wird bei aber aufgerufen, bei einem Fehler kommt jedenfalls eine Meldung. Wie/Wo sehe ich denn

    Code
    [COLOR=#000000][COLOR=#007700]echo  [/COLOR][COLOR=#0000bb]$menu_item[/COLOR][COLOR=#007700]->[/COLOR][COLOR=#0000bb]ID[/COLOR][COLOR=#007700].[/COLOR][COLOR=#dd0000]"--->$key<BR>"[/COLOR][COLOR=#007700];  [/COLOR][/COLOR]
  • Ich glaube Du verstehst mich gerade falsch. Ich habe ein generelles Problem mit der Ausgabe (meine PHP-Kenntnisse sind sehr mäßig). Wie oder wo sehe ich denn die Ausgabe mit dem echo. Ich hätte vermutet, dass mir das einfach mitten auf der Web-Seite angezeigt wird, d.h. da wo der pre-prozessor gerade ist, haut er den Text bzw. die Menü-ID raus. Bei mir wird aber nur die normale Webseite ausgegeben, auch im Quelltext kann ich nichts finden.

Jetzt mitmachen!

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