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

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.

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

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.

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 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:

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.

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 .

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

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

11 KommentareEine Antwort hinterlassen

  1. 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

  2. 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?

  3. Максим Каминский

    great thanks, it help wery well!

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

  5. sacha

    Wonderful, just so simple and clean.
    Thank you.

  6. scottlee.me

    @ad Great question! I’m curious too.

  7. 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“

  8. brunobruno2

    Beatiful! Many thanks for sharing it. Works like a charm.

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.