Die letzten Posts z.B. 20 - 40 ausgeben...

  • Gibt es eine Möglichkeit, WP zu sagen, welche Posts er genau ausgeben soll? Das heißt, einmal sollen die letzten Posts (also von hinten gezählt) von 10-20 und in der nächsten Spalte 30-40 ausgegeben werden....

    Danke im Voraus!

    • 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, "Retrieve_a_Particular_Post" wäre das Richtige, nur dass ich keine absoluten Angaben machen kann sondern nur relative. Also die letzten 10-20 Posts und die letzten 30-40 Posts. Da weiss ich nicht, wie ich das anstellen könnte, weil ich mich ja nicht auf konkrete IDs beziehen kann...

  • Ich habe mich zwar schon gefreut aber ich habe mich erst heute an die Praxis gewagt. Dabei las ich dies:

    "The query_posts function is intended to be used to modify the main page Loop only. It is not intended as a means to create secondary Loops on the page."

    Es wird auf Function Reference/WP Query WordPress Codex verwiesen.

    Meinst du die Warnung kann "ignoriert" werden, weil es eine reine extreme Vorsichtmasnahme ist?

    (Ich schau mir natürlich noch Function Reference/WP Query WordPress Codex an, aber bin auch neugierig was du meinst :))

  • Für alle, die ein ähnliches Problem haben sollten und hier reinschauen:
    So lautet nun mein zweiter Loopanfang:

    <?php query_posts('showposts=50&offset=7'); ?>

    Zeigt also 50 Posts und lässt die ersten 7 aus :)

  • Ich habe mich zwar schon gefreut aber ich habe mich erst heute an die Praxis gewagt. Dabei las ich dies:

    "The query_posts function is intended to be used to modify the main page Loop only. It is not intended as a means to create secondary Loops on the page."

    Meinst du die Warnung kann "ignoriert" werden, weil es eine reine extreme Vorsichtmasnahme ist?


    Kommt drauf an was genau du erreichen willst. Sind die Loops quasi gleichwertig, dann nimm einfach query_posts(). Für sekundäre Loops - z.B. verwandte Artikel oder die letzten Artikel in der Sidebar - nimmst du besser ein neues WP_Query-Objekt. Der Untschied ist gering, Beispiele gibts hier:
    The Loop WordPress Codex

    PHP
    <?php query_posts('category_name=special_cat&showposts=10'); ?>
      <?php while (have_posts()) : the_post(); ?>
        <!-- Do special_cat stuff... -->
      <?php endwhile;?>
    PHP
    <?php [COLOR="Red"]$my_query = new WP_Query[/COLOR]('category_name=special_cat&showposts=10'); ?>
    <?php while ([COLOR="Red"]$my_query->[/COLOR]have_posts()) : [COLOR="Red"]$my_query->[/COLOR]the_post(); ?>
      <!-- Do special_cat stuff... -->
    <?php endwhile; ?>
  • Hi,

    ja genau das habe ich gelesen. Ganz habe ich die Unterschiede nicht begriffen. Aber ich habe festgestellt, dass ich auf diese Weise, in der zweiten Spalte mehr Posts darstellen kann, als in der ersten vorgegeben. Letztlich klappts und ich bin zufrieden :D

    Zitat

    Für sekundäre Loops - z.B. verwandte Artikel

    Aber, verwandte Artikel wären doch "gleichwertig"?

    Wie gesagt, ich begreife noch nicht ganz.

  • Ich stehe vor einem neuen Problem:

    Wie schließe ich mehrere Posts aus in der zweiten Listung?

    Hier wird gezeigt, wie man es macht, wenn man den ersten Post ausschließen möchte in der zweiten Listung weil er in der ersten Listung bereits vorkommt.

    PHP
    <?php $my_query = new WP_Query('category_name=featured&showposts=1');
      while ($my_query->have_posts()) : $my_query->the_post();
      $do_not_duplicate = $post->ID;?>
        <!-- Do stuff... -->
      <?php endwhile; ?>
        <!-- Do other stuff... -->
      <?php if (have_posts()) : while (have_posts()) : the_post(); 
      if( $post->ID == $do_not_duplicate ) continue; update_post_caches($posts); ?>
       <!-- Do stuff... -->
      <?php endwhile; endif; ?>

    Ich bin überzeugt, dass es für 4 Beiträge nicht mit dem selben Code funktioniert. Ich muss bestimmt irgendwo irgendwelche PHP Operatoren hinzufügen oder, weil "$do_not_duplicate = $post->ID;" nicht ausreicht sondern es heißen muss die eine ID oder die andere ID...

    Oder liege ich daneben?

  • Aber, verwandte Artikel wären doch "gleichwertig"?


    Ansichtssache. ;-) Der primäre Loop ist halt der, der normal vorhanden ist. Ein sekundärer einer der nicht normal vorhanden ist und den primären nicht beeinflussen soll. Macht nix wenn du den Unterschied nicht gleich erkennst (wie gesagt, so groß ist der nicht). Wenn du ein paar Anwendungsfälle entdeckt hast, dann kommt der Aha-Effekt früher oder später sicher von selbst. ;-)

    Zitat

    Ich bin überzeugt, dass es für 4 Beiträge nicht mit dem selben Code funktioniert. Ich muss bestimmt irgendwo irgendwelche PHP Operatoren hinzufügen oder, weil "$do_not_duplicate = $post->ID;" nicht ausreicht sondern es heißen muss die eine ID oder die andere ID...


    Du kannst $do_not_duplicate als Array verwenden, siehe PHP-Manual.

    Code
    $do_not_duplicate[COLOR="Red"][B][][/B][/COLOR] = $post->ID;


    ($do_not_duplicate muss dann aber vorher als leeres Array initialisiert werden!)

    Anschließend solltest du die Posts bereits bei der Query ausschließen.Dafür gibts seit 2.6 den post__not_in-Parameter, dem du dann das Array übergeben kannst. Dazu muss aber die Übergabesyntax geändert werden:

    PHP
    new WP_Query(array(
    'category_name' => 'featured',
    'showposts' => 1,
    'post__not_in' => $do_not_duplicate
    ));

Jetzt mitmachen!

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