Loop in Sidebar funktioniert nicht in single.php

  • Hallo zusammen,
    bei meinem projekt, unsere bandseite auf cms mit wp umzustellen komm ich über ein problem nicht hinweg. Weiß schon gar nicht mehr, wo ich noch suchen soll.

    Der link zur testseite: http://www.17hippies.de/wordpress/

    Ich habe eine hauptnavigation im header untergebracht, der die einzelnen kategorien anspricht. Dabei wird der aktuellste Beitrag komplett angezeigt und in der Sidebar erscheint der kategorie-name als überschrift und darunter die überschriften aller beiträge dieser kategorie.

    Jetzt folgendes problem:
    Wenn ich in der sidebar einen der beitragsüberschriften anklicke erscheint dieser zwar im content-bereich, aber die sidebar zeigt keine überschrift und es werden alle beiträge aufgelistet, nicht nur die der aktuellen kategorie...


    der code der sidebar:


    Wer kann mir den entscheidenden tip geben... ich dokter seit zwei tagen an den problem rum und seh wahrscheinlich den wald vor lauter bäumen nicht mehr...

    merci vielmals,
    kruisko

    • 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

  • Woher hast Du denn diesen komischen Code?

    Mmmh... zusammenkopiert und mein bescheidenes angelesenes und ausprobiertes nichtwissen ins spiel gebracht...:?

    Ich war der meinung, die query-abfrage mit der variablen vorweg greift sich die kategorie der ersten loop (im index.php) und liest alle posts jener kategorie neu aus. Und die werden dann in der folgenden loop ausgelesen und angezeigt...
    Es funktioniert ja auch für die kategorie-anwahl...

    Was meinst du genau mit

    Zitat

    query_posts() musst Du noch abfangen


    Heißt das, ich muß die vorhandene loop ersetzen durch die foreach-loop?

    Ich werd mich heute abend wohl noch ein wenig damit auseinandersetzen müssen. (und das ist erst er anfang der page...)

    Aber erstmal danke für den hinweis.

    kruisko

  • Hm, also wenn Du nicht unbedingt fixiert bist auf query_posts(), kann Dir evtl. get_posts() weiterhelfen. Ich mache es bei mir mit folgendem Code in meiner Sidebar, man müsste eben nur den category-Parameter einsetzen:

    Das Problem bei Dir ist, dass Du es auf die Kategorien bezogen haben willst und dass Deine sidebar.php vor dem Hauptinhalt geladen wird. D.h. Du kannst zu dem Zeitpunkt, wo die sidebar.php geladen wird, noch gar nicht die ID jeweilige Kategorie rausfinden. Außerdem ist die Seitenleiste außerhalb des Loops, insofern gibt es eh nicht immer genau eine ID. Du müsstest also nun einen Spezialfall für die Einzelansicht definieren, und für diesen die jeweilige ID rausfinden. Gäbe es nicht die Möglichkeit, die Sidebar nach rechts zu legen? Dann wäre das bedeutend einfacher.

  • Hi mastermind,

    wenn ich es richtig verstehe, wird meine sidebar.php nach der hauptloop geladen wird. Die index.php läd erst den header, dann kommt die loop und dann wird die sidebar.php (vor dem footer geladen)...

    Die navigationsspielchen sollten schon auf der linken seite sind. Und wie gesagt, es funktioniert ja auch, wenn ich in der hauptmenüleiste (oben im header) auf eine kategorie klicke. Es wird dann der erste post der kategorie angezeigt und links die titel von allen...

    hier mal der code der index.php

    grüße,
    kruisko

  • Ach ja, dann hab ich mich gerade bei einem schnellen Blick in Deinen Quellcode vertan.

    Dann ist es eigentlich recht einfach:

    Probier doch mal folgendes:
    - die index.php zur single.php kopieren (oder falls es die single.php gibt, die nehmen)
    - single.php öffnen und innerhalb des Loops folgendes notieren:

    PHP
    <?php
    $allcats = get_the_category();
    $firstcat = $allcats[0]->cat_ID;
    ?>

    - In die sidebar.php packst Du folgendes:

  • danke für den code... aber ich weiß leider nicht, an welcher stelle in der sidebar ich ihn einfügen muß...
    innerhalb der loop doch nicht, oder? die loop brauch ich doch nicht wenn ich ein array abfrage... glaub ich zumindest.

    oh mann, muß wohl erstmal nen grundkurs in php programming besuchen...

    kruisko

  • ok, die sidebar sieht jetzt so aus:


    leider bekomme ich so in der sidebar immer fünf überschriften aufgelistet,
    egal auf welche kategorie ich geklickt habe. es sind die fünf insgesammt neuesten. ich möchte aber die neuesten aus der kategorie, die ich angewählt habe.
    und leider habe ich immer noch keine überschrift in der einzelansicht der beiträge (also wenn ich auf einen link in der sidebar klicke). das macht ja das

    PHP
    <h1><?php single_cat_title("... "); ?></h1>

    ganz oben in der sidebar... aber es funzt nur wenn ich auf einen der hauptnavigationslinks klicke.

    kru:sko

  • Hallo mastermind,

    ich hab die single.php gar nicht benutzt, also nicht hochgeladen...
    wollte so viel wie möglich erstmal mit der index.php machen, da das layout sich nicht unbedingt ändern soll...

    ich hab das ganze erstmal wieder offline genommen.
    bin die nächsten tage unterwegs und kann eh nur offline arbeiten (im auto) und lade mir gerade literatur zum thema php und so runter.
    werd mich noch ein wenig reinlesen in die materie, bevor ich euch hier weiterhin mit dämlichen fragen komme...:)

    vielleicht hast du ja noch nen tip, wo ich gute tutorials und anleitungen im netz finde, die ich dann auch offline lesen kann... (also nicht unbedingt sowas wie das php-handbuch bei http://www.php.net/manual/de/. Ist leider in php programmiert und somit für mich nicht ohne weiteres lesbar... (lad es mir trotzdem mal runter, vielleicht krieg ich es ja local zum laufen...

    lieben gruß,
    kruisko

  • Ok, ok, ich werde das bei meinen nächsten versuchen berücksichtigen.
    Aber wie gesagt, jetzt bin ich eh erstmal ein paar tage raus ... und ich fahr in die schweiz und mag da vielleicht gar nicht an php und andere scripte denken...
    trotzdem erstmal vielen dank soweit... ich befürchte, ich werde mich hier später wieder melden.

    grüße,
    kruisko

Jetzt mitmachen!

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