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 einen WordPress-Beitrag nur anzeigt, wenn er ein bestimmtes benutzerdefiniertes Feld enthält

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.

Möchten Sie einen WordPress-Beitrag nur anzeigen, wenn er ein bestimmtes benutzerdefiniertes Feld enthält?

Benutzerdefinierte Felder sind eine praktische WordPress-Funktion, mit der Sie zusätzliche Informationen zu Ihren WordPress-Beiträgen und -Seiten hinzufügen können. Vielleicht möchten Sie Ihre Inhalte nach Ihren benutzerdefinierten Feldern filtern.

In diesem Artikel zeigen wir Ihnen, wie Sie einen WordPress-Beitrag nur anzeigen, wenn er ein bestimmtes benutzerdefiniertes Feld enthält.

How to Display a WordPress Post Only if It Has a Specific Custom Field

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 fortgeschrittenes WordPress-Konzept, und es gibt viele Möglichkeiten, benutzerdefinierte Felder in WordPress hinzuzufügen, einschließlich der Verwendung des Advanced Custom Fields (ACF) Plugins.

Viele hilfreiche Tipps zur Verwendung und Anzeige von benutzerdefinierten Feldern finden Sie in unserem Beitrag WordPress Custom Fields 101: Tips, Tricks, and Hacks.

You Can Add Metadata to a Post Using Custom Fields

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:

  1. 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.
  2. 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.
  3. Wir empfehlen, die Hierarchie der WordPress-Vorlagen zu verstehen, damit Sie wissen, wo Sie den Code später einfügen müssen.
  4. 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 dieses Tutorial nur mit klassischen WordPress-Themes funktioniert, da Block-Themes einen anderen Satz von Theme-Dateien haben.

Sehen wir uns also an, wie man einen WordPress-Beitrag nur dann anzeigt, wenn er ein bestimmtes benutzerdefiniertes 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.

Wir hoffen, dass dieses Tutorial Ihnen geholfen hat, zu lernen, wie man einen WordPress-Beitrag nur dann anzeigt, wenn er ein bestimmtes benutzerdefiniertes Feld hat. Vielleicht möchten Sie auch unseren vollständigen WordPress-SEO-Leitfaden lesen oder sich unsere Liste der besten WordPress-Plugins für das Wachstum Ihrer Website ansehen.

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

12 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. ahmed says

    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

  3. Dave101 says

    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?

  4. Mario M says

    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‘);

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.