Wenn Sie mehrere WordPress-Abfragen verwenden, um verschiedene Sätze von Beiträgen anzuzeigen, können Sie auf doppelte Inhalte stoßen. Dies liegt daran, dass einige Beiträge möglicherweise mehr als einer Schleife entsprechen und zweimal angezeigt werden.
WordPress verfügt nicht über eine integrierte Option, um doppelte Beiträge in mehreren Schleifen zu vermeiden. In unseren über 15 Jahren Erfahrung mit verschiedenen WordPress-Websites haben wir jedoch gelernt, wie dieses Problem vermieden werden kann. Daher haben wir einen benutzerdefinierten Code-Snippet erstellt, den Sie zu Ihrer Website hinzufügen können, um zu vermeiden, dass doppelte Beiträge in verschiedenen Schleifen angezeigt werden.
In diesem Artikel zeigen wir Ihnen, wie Sie doppelte Beitragsanzeigen mit mehreren Schleifen in WordPress einfach vermeiden können.

Wie doppelte Beiträge in mehreren WordPress-Schleifen erscheinen
Beim Erstellen eines benutzerdefinierten WordPress-Themes oder einer benutzerdefinierten Seiten-Vorlage müssen Sie möglicherweise mehrere WordPress-Schleifen verwenden.
Zum Beispiel möchten Sie vielleicht Ihre neuesten Beiträge neben den beliebtesten Beiträgen Ihrer Website anzeigen. Indem Sie alle Beiträge jeder Kategorie anzeigen, können Sie den Lesern auch helfen, interessante Inhalte zu finden.
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. Sie nehmen auch Bildschirmplatz ein, 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.
Mit diesen Worten wollen wir uns eine einfache Möglichkeit ansehen, doppelte Beiträge zu vermeiden, wenn Sie mit mehreren Schleifen in WordPress arbeiten.
Vermeidung von doppelten Beiträgen in mehreren WordPress-Schleifen
In diesem Leitfaden zeigen wir Ihnen einige Beispiel-WordPress-Codes, die den Fehler mit doppelten Beiträgen verursachen, und teilen dann einen Code-Schnipsel, der das Problem behebt.
Beim Erstellen eines WordPress-Child-Themes oder einer benutzerdefinierten Vorlage kann Ihr Code völlig anders sein. Sie können jedoch unseren Code-Schnipsel als Ausgangspunkt verwenden und ihn dann an Ihre eigene Website anpassen.
Zuerst erstellen wir ein Problem mit doppelten Beiträgen. Im folgenden Beispielcode zeigen wir alle Beiträge der Kategorie 'Reisen' und alle Beiträge der Kategorie 'Nachrichten' an, 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 nicht auf doppelte Beiträge in einer der beiden Abfragen.
Wenn ein Beitrag sowohl zur Kategorie 'Nachrichten' als auch zur Kategorie 'Reisen' gehört, wird er zweimal angezeigt, wie Sie im folgenden Bild sehen können.

Lassen Sie uns dieses Problem beheben.
Um doppelte Beiträge in Ihrem WordPress-Blog zu vermeiden, müssen Sie die Daten aller in der ersten Schleife angezeigten Beiträge 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 Post-IDs in einem Array namens $exclude. Danach fügen wir das Argument post__not_in zur zweiten Abfrage hinzu, wodurch Beiträge ausgeschlossen werden, die in der ersten Schleife angezeigt wurden.
Wenn Sie nicht vertraut damit sind, Code-Snippets zu Ihrer Website hinzuzufügen, dann ist ein einfacherer Weg die Verwendung von WPCode. Es ist das beste Code-Snippet-Plugin für WordPress, das Ihnen hilft, benutzerdefinierten Code hinzuzufügen, ohne Ihre Website zu beschädigen.
Zuerst müssen Sie das WPCode-Plugin installieren und aktivieren. Wenn Sie Hilfe benötigen, lesen Sie bitte unseren Leitfaden zur Installation eines WordPress-Plugins.
Nach der Aktivierung können Sie im WordPress-Dashboard zu Code Snippets + Snippet hinzufügen gehen und dann auf die Option „Eigene benutzerdefinierte Codes hinzufügen (Neues Snippet)“ klicken.

Danach können Sie den benutzerdefinierten Code in den Bereich Code-Vorschau einfügen und oben einen Titel eingeben.
Sie müssen auch den 'Code-Typ' als PHP-Snippet auswählen, indem Sie auf das Dropdown-Menü klicken.

Nach der Eingabe des Codes scrollen Sie einfach nach unten, um den Abschnitt Einfügen auszuwählen.
Hier können Sie die Standardeinstellung 'Automatisch einfügen' verwenden und das Plugin den Code automatisch zu Ihrer Website hinzufügen lassen.

Wenn Sie fertig sind, speichern Sie einfach den Ausschnitt und aktivieren Sie ihn.
Weitere Details finden Sie in unserem Leitfaden zum einfachen Hinzufügen von benutzerdefiniertem Code in WordPress.
Wenn Sie nun Ihre WordPress-Website besuchen, werden Sie sehen, dass die doppelten Beiträge verschwunden sind.

Wir hoffen, dieser Artikel hat Ihnen geholfen zu lernen, wie Sie doppelte Beitragsanzeigen mit mehreren Schleifen in WordPress vermeiden können. Möglicherweise möchten Sie auch unseren Leitfaden lesen, wie Sie eine beliebige Anzahl von Beiträgen in einer WordPress-Schleife anzeigen und wie Sie Sticky Posts in WordPress erstellen.
Wenn Ihnen dieser Artikel gefallen hat, abonnieren Sie bitte unseren YouTube-Kanal für WordPress-Video-Tutorials. Sie finden uns auch auf Twitter und Facebook.

Nick J
Gibt es ein Plugin, das dies tut?
Satriyo
Könnte mir jemand sagen, wie das geht? Ich bin wirklich neu hier und brauche Hilfe. Bitte geben Sie mir ein klares Beispiel mit der Beitrags-ID, wie ich sie speichern kann? Nehmen wir an, meine ist 1527.
Gaurav
Ich verwende 2 Schleifen vor Schleifen einer bestimmten Kategorie, in denen ich Duplikate vermeiden möchte. Wie speichere ich also die IDs in dem Array aus den ersten beiden Schleifen?
Joe
Genau das, was ich gesucht habe – danke!
Guilherme Alves
Vielen Dank :))) Das hilft mir sehr!
Rettet meinen Tag <3
WPBeginner Support
Hallo Guilherme,
You are welcome
Don’t forget to follow us on Facebook for more WordPress tips and tutorials.
Admin
Julie
AWESOME!! Thank you so much! And thank you SERGEYVLASOV for that last comment– Worked like a charm for my multiple loops. Hooray!!
Pirooz
Diese Methode funktioniert einwandfrei, bis beide Schleifen in einer Datei liegen.
Aber wenn ich die erste Schleife in die header.php und die andere in die index.php einfüge,
gibt in_array($post->ID, $do_nit_duplicate) null zurück.
Was kann ich tun?
warren
Guten Tag allerseits,
wird das für mein aktuelles Problem mit der doppelten Anzeige von Beiträgen auf der Website funktionieren? Es wird buchstäblich eine Kopie unter den Beiträgen und die Schaltfläche 1, 2, -> angezeigt…
die Seite ist Ich habe Plugins deaktiviert und wieder aktiviert, ich werde buchstäblich verrückt.
agus
Kannst du mir helfen?
Ich habe Probleme mit doppelten Kategorien auf meiner Website
bitte
#danke
WPBeginner Support
Scheint ein themenspezifisches Problem zu sein, kontaktieren Sie die Theme-Entwickler für Unterstützung.
Admin
Gabriel
Bevor wir über die Standard-Schleife iterieren, sollten wir nicht wp_reset_postdata(); verwenden?
Greg
@sergeyvlasov – Danke, das hat bei mir funktioniert
obwohl ich geändert habe
$do_nit_duplicate zu $do_not_duplicate
Ron Hantman
Schauen Sie sich diese Lösung an, die diese Aufgabe außerhalb der Schleife erledigt:
http://wordpress.stackexchange.com/questions/61936/removing-duplicate-values-between-two-wordpress-queries/
sergeyvlasov
Ich denke, es gibt einen Fehler in diesem Algorithmus. Er kann nicht mehr als eine (1) Duplizierung erkennen. Die magische Zeile würde also so aussehen:
$do_not_duplicate[] = $post->ID
und dann verwendet werden als
if(in_array($post->ID, $do_nit_duplicate)) continue;