Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
WPB Cup
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Wie man die Anzeige doppelter Beiträge mit mehreren Schleifen in WordPress vermeidet

Hinweis der Redaktion: Wir erhalten eine Provision für Partnerlinks auf WPBeginner. Die Provisionen haben keinen Einfluss auf die Meinung oder Bewertung unserer Redakteure. Erfahre mehr über Redaktioneller Prozess.

Versuchen Sie, die Anzeige doppelter Beiträge mit mehreren Schleifen in WordPress zu beheben?

Wenn Sie mehrere WordPress-Abfragen verwenden, um verschiedene Sätze von Beiträgen anzuzeigen, können Sie auf doppelte Inhalte stoßen. Das liegt daran, dass einige Beiträge möglicherweise mehr als einer Schleife entsprechen und doppelt erscheinen.

In diesem Artikel zeigen wir Ihnen, wie Sie die Anzeige von doppelten Beiträgen mit mehreren Schleifen in WordPress leicht vermeiden können.

Avoding duplicate posts when working with multiple WordPress loops

Wie doppelte Beiträge in mehreren WordPress-Schleifen erscheinen

Wenn Sie ein benutzerdefiniertes WordPress-Theme oder eine benutzerdefinierte Seitenvorlage erstellen, müssen Sie manchmal mehrere WordPress-Schleifen verwenden.

So können Sie zum Beispiel Ihre neuesten Beiträge neben den beliebtesten Beiträgen Ihrer Website anzeigen. Sie könnten den Lesern auch helfen, interessante Inhalte zu finden, indem Sie alle Beiträge in jeder Kategorie anzeigen.

In all diesen Beispielen kann ein einzelner Beitrag die Kriterien für mehrere Schleifen erfüllen. Wenn dies geschieht, zeigt WordPress doppelte Inhalte an.

Diese doppelten Inhalte können Ihre Website unordentlich und unprofessionell aussehen lassen. Außerdem beanspruchen sie Platz auf dem Bildschirm, ohne einen Mehrwert zu bieten.

Da Sie Beiträge für jede Schleife dynamisch generieren, können Sie nicht manuell vorhersagen, ob ein doppelter Beitrag in mehreren Schleifen erscheinen wird.

Schauen wir uns also eine einfache Möglichkeit an, um doppelte Beiträge zu vermeiden, wenn man mit mehreren Schleifen in WordPress arbeitet.

Vermeidung von doppelten Beiträgen in mehreren WordPress-Schleifen

In diesem Leitfaden zeigen wir Ihnen ein Beispiel für WordPress-Code, der den Fehler „doppelter Beitrag“ verursacht, und teilen dann einen Codeausschnitt, der das Problem behebt.

Wenn Sie ein WordPress Child-Theme oder eine benutzerdefinierte Vorlage erstellen, kann Ihr Code völlig anders aussehen. Sie können jedoch unser Code-Snippet als Ausgangspunkt verwenden und es dann an Ihre eigene Website anpassen.

Lassen Sie uns zunächst ein Problem mit doppelten Beiträgen erstellen. Im folgenden Beispielcode werden alle Beiträge in der Kategorie „Reisen“ und alle Beiträge in der Kategorie „Nachrichten“ angezeigt, ohne doppelte Beiträge zu vermeiden.

/******  The First Query *******/
 
$first_query = new WP_Query(  array (
'category_name' => 'news',
'posts_per_page'  =>  3 
));
  
// The Loop
if ( $first_query->have_posts() ) {
    echo '<ul>';
    while ( $first_query->have_posts() ) {
        $first_query->the_post();
 
//display posts
echo '<li>';
echo the_post_thumbnail( array(50, 50) );
echo get_the_title(); 
echo '</li>';
    }
    echo '</ul>';
} else {
    // no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
 
 
/******  The Second Query *******/
$second_query = new WP_Query(  array (
'category_name' => 'travel',
'posts_per_page'  =>  3
 
) );
 
// The Loop
if ( $second_query->have_posts() ) {
 
echo '<ul>';
while ( $second_query->have_posts() ) {
 
$second_query->the_post();
echo '<li>'; 
echo the_post_thumbnail( array(50, 50) );
echo get_the_title(); 
echo '</li>';
    }
echo '</ul>';
} else {
    // no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
?>

Wie Sie sehen können, prüft dieser Code in keiner der Abfragen auf doppelte Beiträge.

Wenn ein Beitrag sowohl zur Kategorie „Nachrichten“ als auch zur Kategorie „Reisen“ gehört, wird er zweimal angezeigt, wie Sie auf dem folgenden Bild sehen können.

How to avoid duplicate post display with multiple loops in WordPress

Lassen Sie uns dieses Problem beheben.

Um doppelte Beiträge in Ihrem WordPress-Blog zu vermeiden, müssen Sie die Daten aller Beiträge, die in der ersten Schleife angezeigt werden, vorübergehend speichern.

Sobald Sie diese Informationen haben, können Sie die zweite Abfrage ändern, um zu verhindern, dass doppelte Beiträge in der zweiten Schleife erscheinen:

/******  The First Query *******/
 
$first_query = new WP_Query(  array (
'category_name' => 'news',
'posts_per_page'  =>  3
) );
  
// The Loop
if ( $first_query->have_posts() ) {
    echo '<ul>';
    while ( $first_query->have_posts() ) {
        $first_query->the_post();
         
// Store Post IDs in an Array to reuse later
$exclude[] = $post->ID; 
 
//display posts
echo '<li>';
echo the_post_thumbnail( array(50, 50) );
echo get_the_title(); 
echo '</li>';
    }
    echo '</ul>';
} else {
    // no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
 
 
/******  The Second Query *******/
$second_query = new WP_Query(  array (
'category_name' => 'travel',
'post__not_in'  =>  $exclude, // Tell WordPress to Exclude these posts
'posts_per_page'  =>  3
 
) );
 
// The Loop
if ( $second_query->have_posts() ) {
 
echo '<ul>';
while ( $second_query->have_posts() ) {
 
$second_query->the_post();
echo '<li>'; 
echo the_post_thumbnail( array(50, 50) );
echo get_the_title(); 
echo '</li>';
    }
echo '</ul>';
} else {
    // no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
?>

Im obigen Code speichern wir die Post-IDs in einem Array namens $exclude. Danach fügen wir das Argument post__not_in zur zweiten Abfrage hinzu, die Beiträge ausschließt, die in der ersten Schleife angezeigt wurden.

Wenn Sie nun Ihre WordPress-Website besuchen, werden Sie feststellen, dass die doppelten Beiträge verschwunden sind.

Removing duplicate posts when using multiple posts in WordPress

Wir hoffen, dass dieser Artikel Ihnen geholfen hat zu erfahren, wie Sie die Anzeige doppelter Beiträge mit mehreren Schleifen in WordPress vermeiden können. Vielleicht interessiert Sie auch unser Leitfaden zur Auswahl der besten Webdesign-Software oder unsere Expertenauswahl der besten Drag-and-Drop-Seitenerstellungsprogramme für WordPress.

Wenn Ihnen dieser Artikel gefallen hat, dann abonnieren Sie bitte unseren YouTube-Kanal für WordPress-Videotutorials. Sie können uns auch auf Twitter und Facebook finden.

Offenlegung: Unsere Inhalte werden von unseren Lesern unterstützt. Das bedeutet, dass wir möglicherweise eine Provision verdienen, wenn Sie auf einige unserer Links klicken. Mehr dazu erfahren Sie unter Wie WPBeginner finanziert wird , warum das wichtig ist und wie Sie uns unterstützen können. Hier finden Sie unseren redaktionellen Prozess .

Das ultimative WordPress Toolkit

Erhalte KOSTENLOSEN Zugang zu unserem Toolkit - eine Sammlung von WordPress-bezogenen Produkten und Ressourcen, die jeder Profi haben sollte!

Reader Interactions

16 KommentareEine Antwort hinterlassen

  1. Syed Balkhi says

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. Satriyo says

    Could someone tell me how to do this? I’m really new to this and need a help, please give me a clear example with the post ID, how to store it? Let’s say, mine is 1527.

  3. Gaurav says

    I’m running 2 loops before loops of a specific category in which I would like to avoid duplicates. So how do a store ID’s in the array from first two loops?

  4. Julie says

    AWESOME!! Thank you so much! And thank you SERGEYVLASOV for that last comment– Worked like a charm for my multiple loops. Hooray!! :)

  5. Pirooz says

    This method just works fine until both of 2 loops located in one file.
    but when I put the first loop in the header.php and another one in the index.php,
    in_array($post->ID, $do_nit_duplicate) returns null.
    what can I do?

  6. warren says

    Good afternoon all,

    will this work for my current issue with double display of posts on site? it literally displays a copy under the posts and the 1, 2, -> button…

    the site is I have deactivated re-activated plugins i am literally going nuts.

  7. sergeyvlasov says

    I think there is a flaw in this algorithm. It can spot no more than 1(one) duplication. So the magic line would look like
     
    $do_not_duplicate[] = $post->ID
     
    and then used as
     
    if(in_array($post->ID, $do_nit_duplicate)) continue;

Eine Antwort hinterlassen

Danke, dass du einen Kommentar hinterlassen möchtest. Bitte beachte, dass alle Kommentare nach unseren kommentarpolitik moderiert werden und deine E-Mail-Adresse NICHT veröffentlicht wird. Bitte verwende KEINE Schlüsselwörter im Namensfeld. Lass uns ein persönliches und sinnvolles Gespräch führen.