Wordpress: Löschen Sie die doppelten Beiträge in mehreren Schleifen

Donnerstag, 2. Juli 2009

Die nützliche Funktion query_posts() oder das Objekt WP_Query (die können dann sind im Grunde dasselbe ist) Wordpress Sie eine Liste der Stellen erhalten, setzen viele Such-Parameter (siehe Sehr kurze Auszug: eine Liste der Stellen nach Kategorie oder Tag ). Gerade wegen seiner Vielseitigkeit in der Forschung der Post kann passieren, dass die Funktion zweimal oder öfter mit in einer Reihe erhalten Sie die "Duplikat". Dies kann zum Beispiel geschehen, wenn Sie nach (Filter) für TAGs, ein Amt in der Tat kann (in der Tat hat sich in den meisten Fällen) haben Tags verbunden. Daraus folgt, dass die Liste der Beiträge mit TAG A auch eine Stelle in der Liste der Stellen mit TAG B abgeben TAG B

Um das Problem zu beseitigen kann auf zwei verschiedene Wege gehen, je nach der Version von WordPress. Die erste ist, beiseite zu legen alle IDs der ersten Schleife, um sie in der zweiten auszuschließen. Diese Technik kann für eine beliebige Anzahl von Schleifen verwendet werden, und den Vorteil, dass mit älteren Versionen von WordPress kompatibel:

PHP:
  1. / / First-Schleife
  2. / / Das Array $ ids [] unten wird verwendet, um Überblick zu behalten,
  3. / / Id der Post, dass ich ging mit der ersten Schleife
  4. array ( ) ; $ Ids = array ();
  5. ) ; query_posts ( 'category_name = Flash & showposts = 10');
  6. have_posts ( ) ) : the_post ( ) ; while (have_posts ()): the_post ();
  7. = $post -> ID ; $ Ids [] = $ post -> ID;
  8. / / ... Ausgang
  9. endwhile;
  10. / / Zweite Schleife
  11. / / In diesem Fall ist die Ausgabe nur noch
  12. / / $ Post-> ID ist nicht im $ ids []
  13. ) ; query_posts ( 'category_name = Adobe & showposts = 10');
  14. have_posts ( ) ) : the_post ( ) ; while (have_posts ()): the_post ();
  15. ! in_array ( $post -> ID , $ids ) ) { wenn (in_array ($ post -> ID, $ ids)) (
  16. / / ... Ausgang
  17. )
  18. endwhile;

Wenn die Freigabe von WordPress, die wir verwenden, ist 2.6 oder höher, können wir für eine Variante comodoa der zweiten Schleife:

PHP:
  1. / / Zweite Schleife
  2. / / WordPress 2.6 +
  3. / / In diesem Fall wird er direkt query_posts (), um
  4. / / Schließen Sie die IDs der Beiträge bereits angezeigt
  5. query_posts (
  6. 'showposts' => 10 , array ( 'showposts' => 10,
  7. 4 , 'Katze' => 4,
  8. $ids , "post__not_in '=> $ ids,
  9. ));
  10. have_posts ( ) ) : the_post ( ) ; while (have_posts ()): the_post ();
  11. / / ... Ausgang
  12. endwhile;

Option post__not_in mit anderen ist auch hier dokumentiert.

Verwandte Post

War dieser Artikel hilfreich?: Per nientePocoAbbastanzaMoltoMoltissimo
Loading ... Loading ...

3 Kommentare zu "Wordpress: beseitigen doppelte Beiträge in mehreren Schleifen"

  1. getAvatar 1,0
    Lug 02, 2009 Undolog.com »Wordpress: Beseitigung doppelte Beiträge in mehreren Schleifen:

    [...] Originalartikel: Undolog.com »Wordpress: Beseitigung doppelte Beiträge in mehreren Schleifen Verwandte Artikel: Undolog.com" Sehr kurze Auszug: Wordpress, bald auf der [...]

  2. getAvatar 1,0
    Lug 04, 2009 Wordpress: Löschen Sie die doppelten Beiträge in mehreren Schleifen:

    [...] Quelle: Wordpress: beseitigen doppelte Beiträge in mehreren Schleifen Verwandte Artikel: Undolog.com »Wordpress: Beseitigung doppelte Beiträge in der Schleife [...]

  3. getAvatar 1,0
    Lug 04, 2009 Pick of the Week # 24 | BigThink:

    [...] Wordpress: Löschen Sie die doppelten Beiträge in mehreren Schleifen Ein kleiner Trick, um zu wiederholen, die Post, wenn wir zwei Schleifen sind auf der gleichen Seite. [...]

Leave a comment

TAG XHTML Berechtigungen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> INSERTION CODE:
 <pre></pre>         // blocco generico [code][/code]       // blocco generico [as][/as]           // Actionscript [css][/css]         // CSS Style Sheet [html][/html]       // HTML [js][/js]           // Javascript [objc][/objc]       // Objective-C [php][/php]         // PHP [sql][/sql]         // SQL