Zweiter Loop ohne $post ?

  • Hallo,

    ich benutze WP 2.7.1.

    Ich hab eine Seite (page.php), unter deren Content mehrere Artikel gelistet sind.

    Das habe ich so gelöst:

    Funktioniert auch alles soweit sehr gut.

    Allerdings möchte ich gerne, dass woanders noch zum Beispiel die ID der eigentlich angezeigten Seite abgefragt werden kann.

    Wenn ich jetzt in der Sidebar folgendes einfüge:

    Code
    echo $post->post_title;

    Wird der Titel des letzten Artikels angezeigt, nicht aber der Titel der Seite...

    Eigentlich nachvollziehbar, weil ja die $post - Variable wohl vom zweiten Loop wieder benutzt wird.

    Gibt es eine Möglichkeit, das zu verhindern? Sprich einen Loop zu erzeugen, der die $post-Variable unberührt lässt?

    Danke für eure Hilfe.

    • 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

  • Teilerfolg.

    PHP
    $myposts = get_posts($query);
         foreach($myposts as $meinpost) :
         ?>
               <div class=“einzelnerartikel“>
                    <h3><a href="<?php echo $meinpost->guid?>"><?php echo $meinpost->post_title; ?></a></h3>  
                    <?php $meinexcerpt = $meinpost->post_excerpt; ?>
                    <p><?php echo ($meinexcerpt); ?></p>
                </div>
         <?php endforeach; ?>

    Dieser Code behebt das Problem mit der $post - Variable.

    Jetzt funktionieren aber Funktionen wie the_content(); etc nicht mehr.

    PHP
    echo $meinpost->post_content;

    sollte ja eigentlich klappen. Problem: Die Quicktags werden nicht durch die jeweiligen Plugins ersetzt. Der Excerpt ist zwar brauchbar, nicht aber der Content.

    Einmal editiert, zuletzt von gegenalles (29. März 2009 um 16:04)

  • Hallo, danke für diesen Link.

    So wie es aussieht, nutzt dieser Code ja ebenfalls die $post - Variable.

    Es sieht so aus, als ob die von mir nachgefragten Template-Tags immer die $post - Variable abfragen und keine andere Variable wie $meinpost zulassen.

    Im Codex steht:

    Zitat

    Other information about each post can be displayed with the appropriate Template Tags or (for advanced users) by accessing the $post variable, which is set with the current post's information while The Loop is running.

    Hm. Das heißt, wenn ich einen "sauberen" zweiten Loop erstellen möchte, das heißt, ohne die $post - Variable zu überschreiben, muss ich den "Umweg" über "$meinpost, etc" gehen.

    Wenn ich nun wüsste wie ich the_content() richtig ausgebe. Wie oben angedeutet, funktioniert "$meinpost->post_content;" nicht, da es die Quicktags der Plugins nicht ersetzt.

    EDIT:

    PHP
    foreach($myposts as $meinpost) :
         [COLOR=Red][B]setup_postdata($meinpost);[/B][/COLOR]
         ?>
               <div class=“einzelnerartikel“>
                    <h3><a href="<?php echo $meinpost->guid?>"><?php echo $meinpost->post_title; ?></a></h3>  
                    <?php $meinexcerpt = $meinpost->post_excerpt; ?>
                    <p><?php the_excerpt(); ?></p>
                </div>
         <?php endforeach; ?>

    Dieser Code funktioniert soweit. Nur komisch, dass die

    Code
    setup_postdata($meinpost)

    scheinbar nur the_excerpt() und the_content() wieder zum Leben erweckt.

    Leider funktioniert es nicht für the_title() oder the_permalink(). Hier wird jedes mal der Link bzw. der Titel des "Original-Posts" (aus dem ersten Loop) dargestellt.

    Seltsam.

    Einmal editiert, zuletzt von gegenalles (29. März 2009 um 17:38)

Jetzt mitmachen!

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