Sie wissen schon, wenn Sie bestimmte WordPress-Beiträge basierend auf benutzerdefinierten Feldern anzeigen müssen? Wir kennen das.
Als wir mit WordPress anfingen, wirkte jeder Code-Schnipsel einschüchternd, besonders wenn wir nur Beiträge mit spezifischen Informationen anzeigen wollten.
Aber hier sind die guten Nachrichten: Nachdem wir Tausenden von WordPress-Anfängern geholfen haben, haben wir festgestellt, dass selbst etwas, das technisch klingt, wie das Filtern benutzerdefinierter Felder, nicht beängstigend sein muss.
Tatsächlich führen wir Sie durch eine einfache Code-Methode, um dies zu tun.
Diese Lösung funktioniert perfekt, egal ob Sie reguläre Blogbeiträge oder benutzerdefinierte Beitragstypen basierend auf bestimmten Kriterien veröffentlichen.

📌 Kurzer Hinweis: Dieses Tutorial dient dazu, WordPress-Beiträge anzuzeigen, wenn in einem bestimmten benutzerdefinierten Feld ein Wert eingegeben wurde.
Wenn Sie benutzerdefinierte Felder auf der Frontend-Seite eines WordPress-Beitrags anzeigen möchten, lesen Sie unseren Leitfaden zur Anzeige benutzerdefinierter Felder in WordPress-Themes.
Warum WordPress-Beiträge mit einem bestimmten benutzerdefinierten Feld anzeigen?
Wenn Sie einen Beitrag auf Ihrer WordPress-Website erstellen, können Sie benutzerdefinierte Felder verwenden, um dem Beitrag zusätzliche Metadaten hinzuzufügen.
Metadaten sind zusätzliche Informationen, die Sie einem Beitrag hinzufügen können. Wenn Sie beispielsweise eine Buchrezension schreiben würden, könnten Sie benutzerdefinierte Felder für 'Name des Autors' oder 'Sternebewertung' hinzufügen.
Benutzerdefinierte Felder sind ein fortgeschrittenes WordPress-Konzept, und es gibt viele Möglichkeiten, benutzerdefinierte Felder in WordPress hinzuzufügen. In unserem Beitrag WordPress Custom Fields 101: Tips, Tricks, and Hacks finden Sie viele hilfreiche Tipps zur Verwendung und Anzeige benutzerdefinierter Felder.

Einer unserer Benutzer fragte uns, wie man WordPress-Beiträge nur dann anzeigt, wenn ein bestimmtes benutzerdefiniertes Feld vorhanden ist. Dies kann nützlich sein, wenn Sie eine benutzerdefinierte Seite erstellen möchten, die alle Beiträge auflistet, die ein bestimmtes benutzerdefiniertes Feld und/oder einen bestimmten Wert enthalten.
Nachdem wir die Antwort gegeben hatten, dachten wir, es wäre am besten, sie mit allen zu teilen, damit die größere WordPress.org-Community davon profitieren kann.
Bearbeiten Ihrer WordPress-Theme-Dateien: Was Sie beachten sollten
Um dieses Tutorial richtig befolgen zu können, sollten Sie Folgendes beachten:
- Dieses Tutorial beinhaltet die Bearbeitung Ihrer WordPress-Theme-Dateien mit Code, daher ist es für absolute Anfänger nicht am besten geeignet. Wenn Sie neu hier sind, müssen Sie unseren Leitfaden lesen, wie Sie Code in WordPress kopieren und einfügen: Anfängerleitfaden zum Einfügen von Code-Schnipseln aus dem Web in WordPress.
- Wir empfehlen, Ihre Website zu sichern und/oder eine Staging-Umgebung zu verwenden, damit Ihre Live-Website nicht beeinträchtigt wird, wenn ein Fehler auftritt. Dies liegt daran, dass Sie Code zu Ihren Theme-Dateien hinzufügen, was riskant sein kann.
- Wir empfehlen, zu verstehen, wie die WordPress-Vorlagenhierarchie funktioniert, damit Sie wissen, wo Sie den Code später hinzufügen müssen.
- Sie müssen sich auch damit vertraut machen, wie WordPress-Loops funktionieren, da wir diese Parameter in einer WordPress-Abfrage aufrufen werden.
Beachten Sie auch, dass dieses Tutorial nur mit klassischen WordPress-Themes funktioniert, da Block-Themes eine andere Reihe von Theme-Dateien haben.
Mit diesen Worten wollen wir uns ansehen, wie ein WordPress-Beitrag nur dann angezeigt wird, wenn er ein bestimmtes benutzerdefiniertes Feld hat.
So filtern Sie Ihre Beiträge nach bestimmten benutzerdefinierten Feldern
Bevor wir Ihnen den Code zeigen, den Sie verwenden müssen, müssen Sie wissen, zu welcher Theme-Datei Sie ihn hinzufügen müssen. Höchstwahrscheinlich wird dies eine Seitenvorlage sein, wie z. B. index.php, archive.php oder page.php.
Nehmen wir an, Sie möchten es zur index.php-Datei des Twenty Twenty-One-Themes hinzufügen. So sieht der WordPress-Schleifenteil dieser Datei im Moment aus:
<?php
if ( have_posts() ) {
// Load posts loop.
while ( have_posts() ) {
the_post();
get_template_part( 'template-parts/content/content', get_theme_mod( 'display_excerpt_or_full_post', 'excerpt' ) );
}
// Previous/next page navigation.
twenty_twenty_one_the_posts_navigation();
} else {
// If no content, include the "No posts found" template.
get_template_part( 'template-parts/content/content-none' );
}
get_footer();
Dieser Code verwendet die Standard-WordPress-Schleife (have_posts() und the_post()), um Beiträge anzuzeigen. Diese Methode eignet sich für die meisten Standard-WordPress-Themes und wird verwendet, um Beiträge ohne benutzerdefinierte Filterung oder Sortierung anzuzeigen.
Nehmen wir nun an, Sie verwenden das benutzerdefinierte Feld „color“ wie im obigen Beispiel. Sie müssen diesen gesamten Code durch den folgenden Ausschnitt ersetzen:
<?php
// The Query to show a specific Custom Field
$the_query = new WP_Query('meta_key=color');
// Load posts loop.
if ( $the_query->have_posts() ) {
while ( $the_query->have_posts() ) {
$the_query->the_post();
get_template_part( 'template-parts/content/content', get_theme_mod( 'display_excerpt_or_full_post', 'excerpt' ) );
}
// Previous/next page navigation.
twenty_twenty_one_the_posts_navigation();
} else {
// If no content, include the "No posts found" template.
get_template_part( 'template-parts/content/content-none' );
}
// Reset Post Data
wp_reset_postdata();
get_footer();
In diesem neuen Code haben wir eine benutzerdefinierte Abfrage eingeführt, um Beiträge abzurufen, die ein bestimmtes benutzerdefiniertes Feld haben (in diesem Fall jeden Beitrag mit dem benutzerdefinierten Feld 'color').
Dann verwendet es eine benutzerdefinierte Schleife (if ($the_query->have_posts())), um die von dieser benutzerdefinierten Abfrage abgerufenen Beiträge zu durchlaufen und den Inhalt jedes Beitrags auf die gleiche Weise wie im ersten Snippet anzuzeigen.
Wir haben auch die Funktion wp_reset_postdata() hinzugefügt, um sicherzustellen, dass WordPress nach der benutzerdefinierten Abfrage wieder alle Beiträge korrekt anzeigt. Dies gewährleistet, dass die Website reibungslos funktioniert und den Benutzern die richtigen Inhalte angezeigt werden.
Nun, was ist, wenn Sie Beiträge finden möchten, bei denen das benutzerdefinierte Feld 'Farbe' einen bestimmten Wert hat, z. B. 'blau'? Dazu müssen Sie Ihrer Abfrage nur einen Parameter 'meta_value' hinzufügen.
Ihr aktualisierter Abfragecode wird wie folgt aussehen:
$the_query = new WP_Query( array( 'meta_key' => 'color', 'meta_value' => 'blue' ) );
💡Profi-Tipp: Sie können Ihre Filterung mit dem Parameter meta_compare noch weiter verfeinern. Damit können Sie Beiträge finden, die nicht mit einem Wert übereinstimmen.
Zum Beispiel, um alle Beiträge anzuzeigen, bei denen die Farbe nicht 'blau' ist, würde Ihre Abfrage wie folgt aussehen:
$the_query = new WP_Query( array( 'meta_key' => 'color', 'meta_value' => 'blue', 'meta_compare' => '!=' ) );
Der != weist WordPress an, alle Beiträge zu finden, bei denen das Feld 'Farbe' vorhanden ist, aber nicht gleich 'blau' ist.
Es gibt viele andere Vergleichsoperatoren, die Sie verwenden können, die Sie in der offiziellen WordPress-Entwicklerdokumentation finden.
Sobald Sie den Code in der PHP-Datei der Seitenvorlage gespeichert haben, können Sie Ihre WordPress-Website im Frontend überprüfen, um Ihren Code in Aktion zu sehen.
Häufig gestellte Fragen zur Anzeige eines Beitrags, wenn er ein bestimmtes benutzerdefiniertes Feld hat
Hier sind einige Fragen, die unsere Leser häufig stellen, wenn es darum geht, einen Beitrag anzuzeigen, wenn er nur ein bestimmtes benutzerdefiniertes Feld hat:
Gibt es eine Möglichkeit, dies zu tun, ohne Theme-Dateien zu bearbeiten?
Ja, und das ist die Methode, die wir den meisten Benutzern empfehlen. Ein Plugin wie WPCode ermöglicht es Ihnen, benutzerdefinierte PHP-Snippets wie dieses sicher hinzuzufügen, ohne direkt die Dateien Ihres Themes zu bearbeiten.
Dies schützt Ihre Website vor Fehlern und stellt sicher, dass Ihre Anpassungen bei einem Theme-Update nicht verloren gehen.
Kann ich Beiträge nach mehreren benutzerdefinierten Feldern filtern?
Das können Sie. Die Funktion WP_Query ist sehr leistungsfähig und akzeptiert komplexere Argumente. Sie würden einen Parameter 'meta_query' verwenden, der es Ihnen ermöglicht, ein Array von Bedingungen zu erstellen, um mehrere benutzerdefinierte Felder gleichzeitig abzugleichen.
Funktioniert diese Methode mit Block-Themes?
Dieses spezielle Tutorial konzentriert sich auf klassische Themes, indem Dateien wie index.php oder archive.php bearbeitet werden. Block-Themes verwenden den Site-Editor und sind nicht auf diese Dateien angewiesen.
Um ein ähnliches Ergebnis in einem Block-Theme zu erzielen, würden Sie den Query Loop-Block und seine integrierten Filteroptionen verwenden, die keinen benutzerdefinierten Code erfordern.
Was ist der Unterschied zwischen 'meta_key' und 'meta_value'?
Betrachten Sie 'meta_key' als den Namen des Labels, wie 'Farbe' oder 'Status'. Der 'meta_value' sind die tatsächlichen Daten, die in dieses Feld eingegeben werden, wie z. B. 'Blau' oder 'Veröffentlicht'.
Die Verwendung des Schlüssels findet jeden Beitrag mit diesem benutzerdefinierten Feld, während die Verwendung des Werts jeden Beitrag mit dieser spezifischen Information findet.
Erfahren Sie mehr Möglichkeiten, Ihre WordPress-Website anzupassen
Hier sind weitere Möglichkeiten, wie Sie Ihre WordPress-Seiten anpassen können:
- Einzelne Kategorien in WordPress unterschiedlich gestalten
- So fügen Sie eine benutzerdefinierte Scrollleiste in WordPress hinzu
- So fügen Sie benutzerdefinierte Stile zu WordPress-Widgets hinzu
- Wie man jeden WordPress-Beitrag unterschiedlich gestaltet
- So verwenden Sie Shortcodes in Ihren WordPress-Themes
- So heben Sie neue Beiträge für wiederkehrende Besucher in WordPress hervor
- So ändern Sie die Seitenleistenposition in WordPress
Wir hoffen, dieses Tutorial hat Ihnen geholfen zu lernen, wie Sie einen WordPress-Beitrag nur anzeigen, wenn er ein bestimmtes benutzerdefiniertes Feld hat. Sie möchten vielleicht auch unseren vollständigen Leitfaden zum Bearbeiten einer WordPress-Website und unsere Expertenauswahl der besten Figma-Plugins für WordPress sehen.
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.

ahmed
Ich habe eine Frage, Sir. Wenn ich einen einzelnen Beitrag und benutzerdefinierte Felder anzeigen möchte, was soll ich tun?
Ich möchte den Beitrag nicht mit bestimmten benutzerdefinierten Feldern anzeigen. Ich möchte alle benutzerdefinierten Felder eines Beitrags anzeigen.
Dave101
Hallo, danke für das nützliche Tutorial. Ich habe eine Frage: Auf einer WordPress-Website habe ich einen Meta-Wert namens „meta_country“ gesetzt und dann jeden Beitrag mit dem Land des Artikels versehen, z. B. „us“, „uk“, „fr“ ... Jetzt versuche ich, irgendwo auf der Startseite des Blogs einen Link hinzuzufügen, der eine Liste aller Beiträge mit einem bestimmten Land und einem bestimmten Tag anzeigt. Zum Beispiel alle „UK“-Beiträge mit dem Tag „APPLE“. Ich verstehe nicht, wie das geht, kann mir jemand helfen?
Максим Каминский
vielen Dank, es hat sehr gut geholfen!
pjhooker
Danke!
Eduard Unruh
omg endlich DANKE!
Mario M
Ich konnte keine Ergebnisse generieren, es sei denn, ich habe den Parameter „post_type“ in die Abfrage aufgenommen.
z. B. $the_query = new WP_Query(‘post_type=page&meta_key=color’);
sacha
Wunderbar, einfach und sauber.
Danke.
scottlee.me
@ad Tolle Frage! Ich bin auch neugierig.
ad
Hallo,
Wie könnte ich Beiträge anzeigen, die ein bestimmtes benutzerdefiniertes Feld NICHT haben? Irgendeine Idee?
Danke!!!
tara tin
Soweit ich weiß, muss es aus PHP meta_key!=’your key’ sein
;Sie müssen nur wissen, dass „!“ „nicht“ bedeutet
brunobruno2
Wunderschön! Vielen Dank fürs Teilen. Funktioniert wie ein Zauber.