Sideblog Plugin verdoppelt Posts

  • Hallo zusammen, ich habe gerade das Sideblog Plugin installiert. Funktioniert auch alles super, allerdings werden auf der eigentlich Postseite manche Posts doppelt angezeigt. Dies mag wohl daran liegen, dass ich immer nur den ersten Beitrag ganz anzeige und die folgenden mit ihren Excerpts abkürzen lasse.
    Schauts euch einfach mal an: hier
    Das Sideblog Plugin habe ich in die index.php eingepflegt, und wahrscheinlich sollte ich Auszüge zeigen, damit das Problem gelöst werden kann.

    Was die function post_style() genau macht hab ich nicht wirklich verstanden.

    PHP
    <?php query_posts('showposts=1&cat=1,3,4,5,48,150,151'); ?>
    <?php if (have_posts()) : ?>
                
                <?php while (have_posts()) : the_post(); ?>

    Hier werden die anzuzeigenden Kategorien ausgewählt und dann geht der Loop los.

    PHP
    <!-- MORE NEWS -->
    <div class="news-block">
    <h2 class="quiet">Was zuvor geschah</h2>
     <?php
     global $post;
     $myposts = get_posts('numberposts=6&offset=1');
     foreach($myposts as $post) :
     setup_postdata($post);
     ?>

    Das ist das mit den excerpts. Und jetzt kommt die Integration des Sideblog-Plugins.

    PHP
    <div>
    <h6>Negative</h6>
    <ul>
    <?php sideblog('negative'); ?>
    </ul>
    <div class="column span-4 first">
    <?php include (TEMPLATEPATH . '/sidebar_single.php'); ?>
    </div>
    </div>

    Also, ichhabe das Problem, glaub ich zumindest, verstanden, allerdings fehlen mir die nötigen PHP Kenntnisse um es auch zu lösen.
    Würde mich sehr freuen, wenn jemand von euch eine Idee, eine Lösungsvorschlag hätte.

    Vielen Dank.
    Liebe Grüße

    Pascal

    • 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

  • Vermutlich brauchst du ein neues Loop-Objekt, da würde ich mal ansetzen. Beispiel aus dem Codex:

    PHP
    <?php $my_query = new WP_Query('category_name=special_cat&showposts=10'); ?>
    
    
    <?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
      <!-- Do special_cat stuff... -->
    <?php endwhile; ?>


    The Loop « WordPress Codex

    Die post_style() ist wahrscheinlich für Style-Änderungen zuständig, also das abwechselnde zuweisen einer Klasse.

  • Das klingt schonmal super. Danke dafür.

    Du schlägst also folgendes vor:
    1. Vor der Sideblog-Definition mit rewind_posts() den Loop-Counter resetten.
    2. dann einen neuen Loop beginnen mit den query_posts(), in welchem nur die eine Kategorie angezeigt wird.
    3. loop schließen und fertig.

    Oder hab ich das Loop-Beispiel falsch interpretiert und man kann entweder rewind_posts(), oder query_posts() benutzen?

  • Nein, nicht ganz. Obwohls so evtl. auch gehen könnte..
    Guck dir mein gepostetes Beispiel mal an. Ich lege mit new WP_Query() ein neues Loop-Objekt an, statt mit query_posts() den "alten" Loop zu beeinflussen. WP_Query() bekommt dieselben Parameter wie query_posts().

    Auf diesem Objekt kannst du dann die normalen Funktionen anwenden, du musst nur das Objekt und den Pfeil "->" mit hinzufügen. So wird der normale Loop nicht beeinflusst und es sollte keine Probleme geben.

  • Leider funktioniert es nicht wirklich so wie ich mir das vorstellte.
    Also ich habe eine Datei asides geschrieben, die ich in der index.php folgendermaßen eingebunden habe:

    PHP
    <div>
       <?php include (TEMPLATEPATH . '/asides.php'); ?>
    </div>

    Und die Asides.php sieht so aus:

    Manche Posts erscheinen weiterhin doppelt. Was habe ich falsch gemacht? Ich kann das [COLOR=#000000][COLOR=#0000cc]$my_query [COLOR=Black]doch umbenennen, oder? Kann es vielleicht daran liegen, dass ich die "special-featured-artikel"[/COLOR] [COLOR=Black]in der AJAX Box oben schon über query posts gemacht habe?[/COLOR]
    [/COLOR][/COLOR]

    Einmal editiert, zuletzt von pasQualle (26. Juni 2008 um 11:51)

  • Ich kann das $my_query doch umbenennen, oder

    #
    Selbstverständlich. Ist ja nur ein Variablenname.

    Welche Beiträge erscheinen doppelt? Die die (unter anderem?) in der "Nagatvie"-Kategorie eingetragen sind? Beiträge die ausschließlich in "Negative" enthalten sind, kannst du per

    PHP
    <?php query_posts($query_string . '&cat=-5') ?>


    ("Negative" hat cat-ID '5')
    aus dem normalen Loop ausschließen.

  • Es sieht so aus, als ob ich es geschafft hätte. Folgendes habe ich getan:

    1. Wie oben erwähnt eine asides.php geschrieben und diese
      PHP
      <div> 
      <?php include (TEMPLATEPATH . '/asides.php'); ?> 
      </div>

      in die index.php eingebunden.

    2. In der Index.php habe ich den »Was geschah zuvor«-Block mittels einer neuen query_posts() function neugeschrieben, und damit die get_posts() function die davor die letzten sechs posts zusammensammelte ersetzt.

    Jetzt hoffe ich nur noch, dass das Ganze hält was es verspricht und mir beim nächsten richtigen Beitrag nicht auseinanderfällt.

    Herzlichen Dank marX für deine Hilfe

Jetzt mitmachen!

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