Vielleicht haben Sie ein individuelles Feld zu Ihren WordPress-Beiträgen hinzugefügt und möchten nur Beiträge mit diesem Feld anzeigen. Oder Sie versuchen, eine spezielle Seite zu erstellen, die Beiträge mit einem bestimmten individuellen Feldwert auflistet. Sie sind nicht allein!
Einer unserer Besucher hat uns gefragt, wie man das macht, und wir dachten, es wäre hilfreich, die Antwort mit allen zu teilen.
Mit individuellen Feldern können Sie zusätzliche Informationen zu Ihren Beiträgen und Seiten hinzufügen. Sie sind ideal zum Organisieren und Filtern Ihrer Inhalte. In diesem Artikel zeigen wir Ihnen, wie Sie WordPress-Beiträge nur anzeigen, wenn sie ein bestimmtes individuelles Feld enthalten.
Hinweis: In diesem Tutorial geht es um die Anzeige von WordPress-Beiträgen, die einen Wert in einem bestimmten individuellen Feld enthalten. Wenn Sie individuelle Felder im Frontend eines WordPress-Beitrags anzeigen möchten, lesen Sie unsere Anleitung zur Anzeige individueller 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 Informationen über den Beitrag, wie z. B. der Titel, der Autor und das Veröffentlichungsdatum.
Benutzerdefinierte Felder sind ein fortschrittliches WordPress-Konzept, und es gibt viele Möglichkeiten, individuelle Felder in WordPress hinzuzufügen. Viele hilfreiche Tipps zur Verwendung und Anzeige individueller Felder finden Sie in unserem Beitrag WordPress Custom Fields 101: Tipps, Tricks und Hacks.
Einer unserer Benutzer fragte uns, wie man WordPress-Beiträge nur dann anzeigen kann, 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 erhalten hatten, dachten wir, es wäre das Beste, sie mit allen anderen zu teilen, damit auch die größere WordPress.org-Community davon profitieren kann.
Bearbeitung Ihrer WordPress-Theme-Dateien: Was zu beachten ist
Damit Sie diese Anleitung richtig befolgen können, sollten Sie einige Dinge beachten:
- Bei diesem Tutorial müssen Sie Ihre WordPress-Theme-Dateien mit Code bearbeiten, daher ist es nicht für absolute Anfänger geeignet. Wenn Sie neu in diesem Bereich sind, sollten Sie unsere Anleitung zum Kopieren und Einfügen von Code in WordPress lesen.
- Wir empfehlen, eine Sicherungskopie Ihrer Website zu erstellen und/oder eine Staging-Umgebung zu verwenden, damit Ihre Live-Site nicht beeinträchtigt wird, wenn ein Fehler auftritt. Der Grund dafür ist, dass Sie Code zu Ihren Themadateien hinzufügen werden, was riskant sein kann.
- Wir empfehlen, die Hierarchie der WordPress-Vorlagen zu verstehen, damit Sie wissen, wo Sie den Code später einfügen müssen.
- Sie müssen sich auch damit vertraut machen, wie WordPress-Schleifen funktionieren, da wir diese Parameter in einer WordPress-Abfrage aufrufen werden.
Beachten Sie auch, dass diese Anleitung nur mit klassischen WordPress-Themes funktioniert, da Block-Themes einen anderen Satz von Theme-Dateien haben.
Schauen wir uns nun an, wie man einen WordPress Beitrag nur dann anzeigt, wenn er ein bestimmtes individuelles Feld enthält.
Einen WordPress-Beitrag nur anzeigen, wenn er ein bestimmtes benutzerdefiniertes Feld enthält
Bevor wir Ihnen den Code zeigen, den Sie verwenden müssen, müssen Sie wissen, in welche Themadatei Sie ihn einfügen müssen. Höchstwahrscheinlich wird das eine Seitenvorlage sein, wie index.php, archive.php oder page.php.
Nehmen wir an, Sie möchten sie in die Datei index.php des Themas Twenty Twenty-One einfü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()
) zur Anzeige von Beiträgen. 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 „Farbe“ wie im obigen Beispiel. Dann müssen Sie den gesamten Code durch das folgende Snippet 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($the_query = new WP_Query('meta_key=color');
) eingeführt, um Beiträge auf der Grundlage eines bestimmten benutzerdefinierten Feldes abzurufen (in diesem Fall Beiträge mit einem benutzerdefinierten Feld ‚Farbe‘).
Dann wird eine benutzerdefinierte Schleife(if ($the_query->have_posts())
) verwendet, um die von dieser benutzerdefinierten Abfrage abgerufenen Beiträge zu durchlaufen, wobei der Inhalt jedes Beitrags auf dieselbe Weise angezeigt wird wie im ersten Ausschnitt.
Wir haben auch die Funktionwp_reset_postdata()
hinzugefügt, um sicherzustellen, dass WordPress nach der benutzerdefinierten Abfrage wieder alle Beiträge korrekt anzeigt. Dadurch wird sichergestellt, dass die Website reibungslos funktioniert und den Nutzern die richtigen Inhalte anzeigt.
Wenn Sie nun bestimmte Beiträge anzeigen möchten, die ein benutzerdefiniertes Feld mit einem bestimmten Wert haben, müssen Sie nur die Abfrage aus Zeile 3 wie folgt ändern:
$the_query = new WP_Query( 'meta_value=blue' );
Damit werden alle Beiträge angezeigt, die in einem beliebigen benutzerdefinierten Feld den Wert „blau“ aufweisen.
Wenn Sie sicherstellen möchten, dass das Feld „Farbe“ den Wert „blau“ hat, sieht Ihr Abfragecode wie folgt aus:
$the_query = new WP_Query( array( 'meta_key' => 'color', 'meta_value' => 'blue' ) );
Weitere Parameter, die Sie in Ihrer Abfrage verwenden können, finden Sie auf der WordPress WP_Query Code-Referenzseite.
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.
Erfahren Sie mehr über die Möglichkeiten, Ihre WordPress Website individuell anzupassen
Hier finden Sie weitere Möglichkeiten, wie Sie Ihre WordPress Seiten individuell anpassen können:
- Wie man einzelne Kategorien in WordPress unterschiedlich gestaltet
- Hinzufügen einer individuellen Bildlaufleiste in WordPress
- Hinzufügen individueller Stile zu WordPress-Widgets
- Wie man jeden WordPress-Beitrag unterschiedlich gestaltet
- Verwendung von Shortcodes in Ihren WordPress Themes
- Wie man neue Beiträge für wiederkehrende Besucher in WordPress hervorhebt
- So ändern Sie die Seitenleiste in WordPress
Wir hoffen, dass diese Anleitung Ihnen geholfen hat zu lernen, wie man einen WordPress Beitrag nur dann anzeigt, wenn er ein bestimmtes individuelles Feld hat. Vielleicht interessieren Sie sich auch für unsere vollständige Anleitung zum Bearbeiten einer WordPress-Website und unsere Expertenauswahl der besten Figma Plugins 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.
ahmed
i have a question sir if i want to display single post and custom fields then what i should do.
i dont want to display the post with specific custom fields. i want to display all custom fields of post
Dave101
Hi, thank for the useful tutorial. I have a question, in a wordpress website i set a meta value named „meta_country“ and then i set every post with the country of the article, like „us“, „uk“, „fr“… Now I’m trying to add somewhere in the home of the blog a link that show list of all post with a specific country and a specific tag. For example all „UK“ post tagged „APPLE“.
I don’t understand how to do that, someone could help me?
Максим Каминский
great thanks, it help wery well!
pjhooker
Thx!
Eduard Unruh
omg finally THANKS!
Mario M
I wasnt able to generate any results unless I included „post_type“ parameter into the query.
ie: $the_query = new WP_Query(‚post_type=page&meta_key=color‘);
sacha
Wonderful, just so simple and clean.
Thank you.
scottlee.me
@ad Great question! I’m curious too.
ad
Hi,
How could I show posts that DON’T have a specific Custom Field? Any idea?
Thanks!!!
tara tin
as I know from php it must be meta_key!=’your key‘
;just you need to know that „!“ means „not“
brunobruno2
Beatiful! Many thanks for sharing it. Works like a charm.