WordPress get_posts ist eine leistungsstarke Funktion, mit der Entwickler Inhalte aus der WordPress-Datenbank abrufen können. Du kannst bis ins kleinste Detail festlegen, welche Beiträge, Seiten und benutzerdefinierten Posttypen du suchst, deine benutzerdefinierte Ergebnismenge erhalten, dann die Elemente wie einen PHP/MySQL-Ninja filtern und ordnen.

Aber keine Angst, wenn du kein PHP-Profi bist, es gibt unzählige PHP-Tutorials, die du dir ansehen oder lesen und die Sprache lernen kannst. Du brauchst nur ein wenige PHP-Kenntnisse, um benutzerdefinierte Listen von Beiträgen zu erstellen, die auf deiner Website angezeigt werden sollen, da die Funktion get_posts eine Reihe von Parametern enthält, die es ermöglichen, einfache oder erweiterte Abfragen zu erstellen.

Die Verwendung von WordPress get_posts ist ein zweistufiger Prozess:

  • Zuerst musst du deine eigene Abfrage erstellen. Eigentlich wird es nicht wie eine MySQL-Abfrage aussehen, und du wirst keine SELECT-Anweisung schreiben. Du musst nur ein Array von Parametern definieren und es an die Funktion get_posts übergeben. WordPress konvertiert dieses Array in eine echte und sichere MySQL-Abfrage, führt es gegen die Datenbank aus und gibt ein Array mit Beiträgen zurück.
  • Zweitens musst du die von get_posts zurückgegebene Ergebnismenge mit einem foreach-Zyklus durchlaufen.

In diesem Beitrag werden wir zunächst auf die oben genannten Schlüsselkonzepte eingehen, insbesondere wie get_posts funktioniert, wie man eine benutzerdefinierte Abfrage erstellt und wie man Daten auf der Startseite anzeigt.
Dann werde ich ein Beispiel aus der Praxis mit einem Codeausschnitt liefern, den du in deiner Stagingumgebung für deine Tests und Entwicklungen kopieren, bearbeiten und verwenden kannst.

Hinweis: Wir unterscheiden in der Regel zwischen Beiträgen, Seiten und benutzerdefinierten Beitragsarten. In diesem Artikel verwenden wir den Begriff „Beiträge“ für regelmäßige Blog-Einträge sowie für Seiten und benutzerdefinierte Beitragsarten. Alle diese Posttypen werden in der Tabelle wp_posts‚ der Datenbank gespeichert. Der Hauptunterschied zwischen den Posttypen besteht im Wert des Feldes „post_type„. Aus Entwicklersicht sind Beiträge, Seiten und benutzerdefinierte Beiträge alle Beiträge.

Einführung in die WordPress get_posts Funktion

Der Kodex beschreibt die Funktion get_posts wie folgt:

Ruft ein Array der letzten Beiträge oder Beiträge ab, die den angegebenen Kriterien entsprechen.

Wir können get_posts auf diese Weise verwenden:

$args = array(
	'numberposts'	=> 20,
	'category'		=> 4
);
$my_posts = get_posts( $args );

if( ! empty( $my_posts ) ){
	$output = '<ul>';
	foreach ( $my_posts as $p ){
		$output .= '<li><a href="' . get_permalink( $p->ID ) . '">' 
		. $p->post_title . '</a></li>';
	}
	$output .= '<ul>';
}

Die obige Funktion ruft die letzten 20 Blog-Einträge in der angegebenen Kategorie ab (standardmäßig ist der ‚post_type‚ ‚post‚) und gibt ein Array von $post-Objekten zurück. Du kannst über das Array iterieren, um die Beiträge auf dem Bildschirm anzuzeigen. Es ist ziemlich einfach, oder?

get_posts verwendet WP_Query, um Postsendungen abzurufen, und es hält ein Array mit den gleichen Parametern in WP_Query verfügbar (mit wenigen Ausnahmen). So haben wir eine riesige Liste von Variablen, die wir verwenden können, um unsere eigenen Abfragen zu erstellen. Diese Parameter sind in den folgenden 15 Kategorien zusammengefasst:

  • Autorenparameter
  • Kategorieparameter
  • Tag-Parameter
  • Taxonomie-Parameter
  • Suchparameter
  • Post & Page Parameter
  • Passwort-Parameter
  • Post Type Parameter
  • Auftrags- und Ordnungsparameter
  • Datumsparameter
  • Benutzerdefiniertes Feld (Post-Meta) Parameter
  • Berechtigungsparameter
  • Parameter für den Mime-Typ
  • Caching-Parameter
  • Rückgabefelder Parameter

Ein kurzer Blick auf die obige Liste kann dir eine Vorstellung von der Vielfalt der benutzerdefinierten Abfragen geben, die du erstellen und gegen die WordPress-Datenbank ausführen kannst. Tauchen wir also tiefer in die Query-Parameter ein und beginnen wir, unsere Listen der Beiträge zu erstellen.

Wie man Abfragen mit WordPress Erstellt get_posts

Jede Kategorie von Parametern bezieht sich auf die gleiche Information. Beispielsweise können wir eine Abfrage erstellen, um Beiträge von den angegebenen Autoren abzurufen oder den/die angegebenen Autor(en) auszuschließen und den Autor nach ID oder Nickname zu definieren. Auf die gleiche Weise können wir Abfragen erstellen, die Beiträge nach Kategorie, Tag, Taxonomie, Datum, benutzerdefinierten Feldern und noch mehr abrufen.

So Verwendest du Parameter zum Erstellen Einfacher Abfragen

Viele Parameter können in ähnlicher Weise verwendet werden, unabhängig davon, welcher Kategorie sie angehören. Die folgenden Parameter erlauben es beispielsweise, die Datenbank nach Postautor(en) abzufragen:

  • author (int) – Autoren-ID
  • autor_name (string) – user_nicename des autors
  • author__in (array) – ein Array aus mehreren Autoren-IDs
  • author__not_in (array) – ein Array von IDs mehrerer Autoren, die von der Ergebnismenge ausgeschlossen werden sollen.

Wie können wir diese Parameter nutzen?

Im folgenden Beispiel gibt der Parameter 'author' an, dass wir die neuesten Blog-Einträge des Autors mit der ID = 1 haben möchten:

$my_posts = get_posts( array( 'author' => 1 ) );

Der gleiche Parameter ‚author‘ erlaubt es, die Datenbank auf verschiedene Weise abzufragen:

// return an array of posts from specific authors
$my_posts = get_posts( array( 'author' => '1,5,12' ) );
// return an array of posts excluding the specified author
$my_posts = get_posts( array( 'author' => -1 ) );

Je nach Wert des Parameters erhältst du also eine Ergebnismenge mit Beiträgen eines einzelnen Autors (Integer), mehrerer Autoren (eine Liste kommagetrennter Werte) oder einem Autor (negative Werte).

Andere Parameter sorgen für zusätzliche Flexibilität. Der folgende Aufruf von get_posts liefert beispielsweise ein Array der neuesten Blog-Einträge mehrerer Autoren:

// return an array of posts from multiple authors
$my_posts = get_posts( array( 'author__in' => array( 1, 5, 12 ) ) );

Und wir können auch mehrere Autoren ausschließen:

// return an array of posts from multiple authors
$my_posts = get_posts( array( 'author__not_in' => array( 1, 5, 12 ) ) );

Ebenso können wir Kategorieparameter, Tagparameter, Posttypparameter mit einigen spezifischen Unterschieden verwenden. Siehe z.B. Kategorieparameter:

  • cat (int)
  • category_name (string)
  • category__and (array)
  • category__in (array)
  • category__not_in (array)

Jedenfalls sind nicht alle Parameter so einfach zu bedienen wie diese Parameter. Zusätzlich können wir Kategorieparameter, Posttypparameter, Mime-Typparameter usw. in einer einzigen Abfrage verwenden. Dies bedeutet, dass wir eine detaillierte Kontrolle über die Elemente in der Ergebnismenge haben und wir können erweiterte Abfragen erstellen, die auf Post-Typen, benutzerdefinierten Taxonomien und benutzerdefinierten Feldern basieren.

Also, lasst uns tiefer tauchen!

Wie man Erweiterte Abfragen in WordPress Erstellt

Lasst uns einen Schritt vorwärts gehen mit einer erweiterten Abfrage, die auf benutzerdefinierten Posttypen und benutzerdefinierten Taxonomien basiert. Angenommen, du hast die folgende Postart:

name: book
taxonomy name: book_category, book_author
support for: title, editor, thumbnail, excerpt, custom-fields

Benutzerdefinierte Posttypen und Benutzerdefinierte Taxonomien

Angenommen, du möchtest eine Liste der neuesten Bücher in der angegebenen benutzerdefinierten Taxonomie book_category. Hier ist das Array der Argumente:

$args = array(
	'post_type'		=> 'book',
	'tax_query'		=> array(
		array(
			'taxonomy'	=> 'book_category',
			'field'		=> 'slug',
			'terms'		=> 'sci-fi'
		)
	),
);

Die obigen Argumente sagen WordPress einfach, dass es alle Bücher in der 'sci-fi'  'book_category' abrufen soll.

Der Parameter 'tax_query' nimmt ein Array von Argument-Arrays (d.h. ein Array von Arrays). Diese verschachtelten Arrays ermöglichen es, sehr komplexe Abfragen auf der Grundlage mehrerer Taxonomien zu erstellen, wie im folgenden Beispiel gezeigt:

$args = array(
	'numberposts'	=> 10,
	'post_type'		=> 'book',
	'relation'		=> 'AND',
	'tax_query'		=> array(
		array(
			'taxonomy'	=> 'book_category',
			'field'		=> 'slug',
			'terms'		=> 'sci-fi'
		),
		array(
			'taxonomy'	=> 'book_author',
			'field'		=> 'term_id',
			'terms'		=> 22
		)
	)
);

Diese Parameter ermöglichen es uns, eine Liste der letzten 10 'book'-Posttypen in der ‚sci-fi','book_category' abzurufen, die vom 'book_author' mit der ID #22 geschrieben wurde. Der Parameter 'relation' legt die logische Beziehung zwischen jeder Taxonomie fest, die in 'tax_query' aufgeführt ist. Oben legen wir den Wert auf AND, da wir alle Bücher der Kategorie 'sci-fi' AND des Autors #22 abrufen müssen.

Wie man Meta-Abfragen mit Hilfe von Benutzerdefinierten Feldparametern Erstellt

Gelegentlich musst du Listen von Beiträgen erstellen, die auf einem bestimmten Schlüssel und/oder Wert eines benutzerdefinierten Feldes basieren.

$args = array(
	'meta_key'		=> 'cover',
	'meta_value'	=> 'paperback',
	'meta_compare'	=> '='
);

Diese Parameter erlauben es uns, alle Beiträge nach Schlüssel und Wert des benutzerdefinierten Feldes abzurufen. 'meta_compare' setzt den Operator, der den Wert des Parameters 'meta_value' testen soll. Hier ist 'meta_value' '=', was auch der Standardwert ist.

Verfügbare Werte sind '=', '!=', '>', '>=', '<', '<=', 'LIKE', 'NOT LIKE', 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN', 'NOT EXISTS', 'REGEXP', 'NOT REGEXP' or 'RLIKE'.

Dies ist ein ziemlich einfaches Beispiel, aber wir können erweiterte Abfragen erstellen. Im nächsten Beispiel wird die Datenbank für Fantasy-Bücher abgefragt, die nach 2010 veröffentlicht wurden:

$args = array(
	'post_type'		=> 'book',
	'meta_key'		=> 'year_published',
	'meta_value_num'	=> 2010,
	'meta_compare'	=> '>',
	'tax_query'		=> array(
		array(
			'taxonomy'	=> 'book_category',
			'field'		=> 'slug'
			'terms'		=> 'fantasy'
		)
	)
);

Und wir können noch weiter gehen. Im nächsten Beispiel mischen wir einen Post-Typ mit einer benutzerdefinierten Taxonomie und zwei benutzerdefinierten Feldern:

$args = array(
	'post_type'		=> 'book',
	'tax_query'		=> array(
		array(
			'taxonomy'	=> 'book_category',
			'field'		=> 'slug'
			'terms'		=> array( 'fantasy' )
		)
	),
	'meta_query'	=> array(
		'relation'		=> 'AND',
		array(
			'key'		=> 'year_published',
			'value'		=> 2010,
			'type'		=> 'numeric',
			'compare'	=> '>',
		),
		array(
			'key'		=> 'price',
			'value'		=> array( 10, 25 ),
			'type'		=> 'numeric',
			'compare'	=> 'BETWEEN',
		)
	)
);

Hier stellen wir eine Reihe von Parametern ein, um eine Liste von Fantasy-Büchern zu erhalten, die nach 2010 veröffentlicht wurden und BETWEEN $10 und $25 kosten.

Du kannst sehen, dass der Parameter 'meta_query' ähnlich wie der Parameter 'tax_query‚ funktioniert. Es hält ein Array von Arrays, so dass wir erweiterte Abfragen erstellen können, die auf mehreren Meta-Key/Wert-Paaren basieren. Eine umfassende Liste der Query-Parameter und eine Reihe von Beispielen findet man in der Dokumentation WP_Query.

Warum ist get_posts auf 5 WordPress Beiträge Beschränkt?

Die Funktion get_posts verwendet die gleichen Argumente wie WP_Query::parse_query() (siehe Codex), aber einige spezifische Parameter bewirken, dass sie etwas anders funktioniert als ein WP_Query-Objekt.

Vielleicht hast du den Parameter 'numberposts' nicht in deinen Abfragen verwendet und fragst dich, warum du nur 5 Elemente in deiner Liste siehst.

Standardmäßig bestimmt die Anzahl der Beiträge, die du auf der Admin-Seite Settings → Reading admin page festgelegt hast, die Anzahl der Beiträge, die von einer WordPress-Abfrage abgerufen werden sollen. Wie auch immer, wenn du keinen benutzerdefinierten Wert für 'numberposts' oder 'posts_per_page' angibst, gibt get_posts eine andere Anzahl von Beiträgen zurück.

  • 'numberposts' ist die Gesamtzahl der Beiträge, die abgerufen werden können. Es ist ein Alias von 'posts_per_page' in WP_Query, aber es gibt einen Unterschied zwischen den beiden: Standardmäßig ist die Anzahl der Beiträge, die bei Verwendung von get_posts abgerufen werden müssen, 5, während 'posts_per_page' in WP_Query standardmäßig auf die Anzahl der Beiträge pro Seite in deinem WordPress-Blog eingestellt ist. Du kannst den Standardwert überschreiben, indem du einen benutzerdefinierten Wert für 'numberposts' oder 'posts_per_page' im Array der Argumente setzt.

Zusätzlich zu den 'numberposts' sind die folgenden Parameter spezifisch für get_posts:

  • 'category' ist eine kommagetrennte Liste von Kategorie-IDs. Es ist ein Alias des Parameters 'cat' in WP_Query.
  • 'include' ist eine kommagetrennte Liste von Post-IDs. Dies ist ein Alias des Parameters 'post__in' in WP_Query.
  • 'exclude' ist eine kommagetrennte Liste von Post-IDs.
  • 'suppress_filters' gibt an, ob Filter unterdrückt werden sollen. Dieser Parameter ist in get_posts standardmäßig auf true gesetzt, während er in WP_Query auf false gesetzt ist (siehe Track).

Die Funktion get_posts ist in wp-includes/post.php definiert. Du kannst tief in die Funktionsweise von get_posts eintauchen, indem du den Quellcode entweder auf Track (WordPress 5.2) oder in deiner lokalen WordPress-Installation überprüfst.

Bestellpositionen

'orderby' und 'order' sortieren die Elemente in der Ergebnismenge. Du sortierst Beiträge nach 'ID', 'author', 'title', 'name', 'type', 'date', 'modified', 'parent', 'rand', 'comment_count' und in vielerlei anderer Hinsicht in aufsteigender oder absteigender Reihenfolge.

Wenn du eine einfache Abfrage hast, musst du nur einen Wert für 'order' und 'orderby' setzen. Im folgenden Beispiel werden die Beiträge nach Postnamen in aufsteigender Reihenfolge sortiert:

$args = array(
	'author'	=> '1,5,12',
	'orderby'	=> 'name',
	'order'		=> 'ASC'
);

Das ist ziemlich einfach. Aber was wäre, wenn du eine erweiterte Abfrage hättest? Z.B.: Können wir Elemente nach einem oder mehreren benutzerdefinierten Feldwerten in einer erweiterten Meta-Abfrage sortieren?

WordPress 4.0 und WordPress 4.2 brachten wichtige Verbesserungen für die Parameter 'orderby' und 'meta_query'. Wir haben nun eine neue Syntax für die Reihenfolge nach bestimmten Klauseln einer Meta-Abfrage. Dank der neuen Syntax können wir Indizes verwenden, um aus dem Parameter 'orderby' Verweise auf die spezifischen Klauseln der Metaabfrage zu erstellen.

Dank dieser Verbesserungen kann die Meta-Abfrage im obigen Beispiel wie folgt geschrieben werden:

$args = array(
	'meta_query'	=> array(
		'relation'		=> 'AND',
		'year_clause' => array(
			'key'		=> 'year_published',
			'value'		=> 2010,
			'type'		=> 'numeric',
			'compare'	=> '>',
		),
		'price_clause' => array(
			'key'		=> 'price',
			'value'		=> array( 10, 25 ),
			'type'		=> 'numeric',
			'compare'	=> 'BETWEEN',
		)
	),
	'orderby' => 'price_clause',
);

Im obigen Beispiel haben wir Elemente nach 'price_clause' geordnet.

Und wir können noch mehr tun. Ab WordPress 4.0 können wir an get_posts ein Array von Meta-Abfrage-Indizes anstelle eines einzelnen Index übergeben, wie im folgenden Beispiel gezeigt:

$args = array(
	'meta_query'	=> array(
		'relation'		=> 'AND',
		'year_clause' => array(
			'key'		=> 'year_published',
			'value'		=> 2010,
			'type'		=> 'numeric',
			'compare'	=> '>',
		),
		'price_clause' => array(
			'key'		=> 'price',
			'value'		=> array( 10, 25 ),
			'type'		=> 'numeric',
			'compare'	=> 'BETWEEN',
		)
	),
	'orderby' => array( 'price_clause' => 'ASC', 'year_clause' => 'DESC' ),
);

Herzlichen Glückwunsch, du hast eine erweiterte Meta-Abfrage erstellt und die Ergebnisse zuerst nach 'price_clause' in aufsteigender Reihenfolge, dann nach 'year_clause' in absteigender Reihenfolge sortiert.

Die vollständige Liste der Sortieroptionen findest du im Codex.

Es ist an der Zeit, dass wir Daten auf der Titelseite anzeigen.

Empfohlene Lektüre: How to Easily Create and Use a phpinfo Page.

Wie man get_posts Zurückgegebene Daten Anzeigt

WordPress get_posts gibt ein Array von WP_Post-Objekten zurück, das uns Zugriff auf eine Reihe von Variablen für jeden ausgewählten Beitrag gibt, der in der Datenbanktabelle wp_posts gespeichert ist:

  • ID
  • post_author
  • post_name
  • post_type
  • post_title
  • post_date
  • post_date_gmt
  • post_content
  • post_excerpt
  • post_status
  • comment_status
  • ping_status
  • post_password
  • post_parent
  • post_modified
  • post_modified_gmt
  • comment_count
  • menu_order
wp_posts Tabellenstruktur in phpMyAdmin
wp_posts Tabellenstruktur in phpMyAdmin

Du kannst leicht auf diese Daten mit einem foreach wie dem folgenden zugreifen:

$custom_posts = get_posts( $args );

if( ! empty( $custom_posts ) ){
	$output = '<ul>';
	foreach ( $custom_posts as $p ){

		$output .= '<li><a href="' 
		. get_permalink( $p->ID ) . '">' 
		. $p->post_title . '</a></li>';
	}

	$output .= '</ul>';
}

return $output ?? '<strong>Sorry. No posts matching your criteria!</strong>';

Wenn get_posts mindestens einen Beitrag gefunden hat, gibt es eine Reihe von Elementen zurück, die wir durchlaufen können, um den Titel des Beitrags und einen Link zum ursprünglichen Beitrag anzuzeigen. Wir haben die Funktion get_permalink verwendet, um den Post-Permalink abzurufen, da wir keine entsprechende Variable WP_Post haben.

Das ist ziemlich einfach, aber wie können wir diesen Code implementieren und unsere eigenen Listen von Beiträgen mit WordPress get_posts erstellen?

Du kannst Listen von Beiträgen auf deinen Seiten auf verschiedene Weise anzeigen.

Beispiel aus der Praxis: So zeigt man eine Benutzerdefinierte Liste von Elementen Mit einer Kurznummer an

Ich werde dir zeigen, wie du einen schnellen und einfachen Shortcode erstellen kannst, den du in deinen Inhalt aufnehmen kannst. Wie auch immer, ich werde nicht tief in Shortcodes eintauchen, da wir dieses Thema bereits in einem früheren Blogbeitrag behandelt haben.

Erstelle zunächst ein neues Verzeichnis im Ordner wp-content/plugins deiner lokalen WordPress-Installation oder in einer Stagingumgebung. In diesem Beispiel habe ich das Verzeichnis kinsta-shortcodes benannt.

In wp-content/plugins/kinsta-shortcodes/ erstelle eine.php-Datei mit dem gleichen Namen wie das neue Verzeichnis: kinsta-shortcodes.php.

Öffne die neue Datei in deinem bevorzugten Texteditor und füge die folgende Überschrift hinzu:

<?php
/**
 * @package Kinsta_shortcodes
 * @version 1.0
 */
/*
Plugin Name: Kinsta shortcodes
Plugin URI: http://wordpress.org/extend/plugins/#
Description: This is an example plugin 
Author: Your Name
Version: 1.0
Author URI: https://yourwebsite.com/
*/

Jetzt haben wir ein brandneues Plugin, aber es tut immer noch nichts. Gehe zu Plugins Admin-Bildschirm in deinem WordPress Dashboard und aktiviere das neue Plugin, um sicherzustellen, dass du WP_DEBUG in deiner wp-config.php Datei auf true gesetzt hast.

Deine Sandbox ist nun bereit für deine Hacks. Der nächste Schritt besteht darin, einen Hook für einen benutzerdefinierten Shortcode zu registrieren:

/**
 * Add a hook for a shortcode tag
 */
function kinsta_shortcodes_init(){
	add_shortcode( 'kinsta_get_posts', 'kinsta_get_posts_cb' );
}
add_action('init', 'kinsta_shortcodes_init');

kinsta_get_posts ist der Shortcode-Name und kinsta_get_posts_cb ist der unten definierte Callback:

/**
 * Register a shortcode
 *
 * @param array $atts Array of shortcode attributes
 */
function kinsta_get_posts_cb( $atts ){

	// safely extract custom arguments and set default values
	extract( shortcode_atts(
			array(
				'numberposts'		=> 3,
				'post_type'			=> 'post',
				'book_category'		=> 'fantasy',
				'year_published'	=> 1900,
				'price_min'			=> 0,
				'price_max'			=> 50
			),
			$atts,
			'kinsta_get_posts'
		) );

	// define the array of query arguments
	$args = array(
		'numberposts'	=> $numberposts,
		'post_type'		=> $post_type,
		'tax_query'		=> array(
			array(
				'taxonomy'	=> 'book_category',
				'field'		=> 'slug',
				'terms'		=> $book_category,
			)
		),
		'meta_query'	=> array(
			'relation'		=> 'AND',
			'year_clause'	=> array(
				'key'		=> 'year_published',
				'value'		=> $year_published,
				'type'		=> 'numeric',
				'compare'	=> '>',
			),
			'price_clause'	=> array(
				'key'		=> 'price',
				'value'		=> array( $price_min, $price_max ),
				'type'		=> 'numeric',
				'compare'	=> 'BETWEEN',
			)
		),
		'orderby' => array( 'price_clause' => 'ASC' )
	);

	$custom_posts = get_posts( $args );

	if( ! empty( $custom_posts ) ){
		$output = '<ul>';
		foreach ( $custom_posts as $p ){

			$output .= '<li><a href="' 
			. get_permalink( $p->ID ) . '">' 
			. $p->post_title . '</a> (' 
			. get_post_meta( $p->ID, 'year_published', true ) 
			. ') - Price: ' . get_post_meta( $p->ID, 'price', true ) . '</li>';
		}

		$output .= '</ul>';
	}

return $output ?? '<strong>Sorry. No posts matching your criteria!</strong>';

Wir setzen sechs Shortcode-Eigenschaften, die wir verwenden, um ein Array von Parametern zu definieren, das schließlich an die WordPress get_posts-Funktion übergeben wird. Wenn $custom_posts nicht leer ist, dann erzeugt ein foreach das HTML einer ungeordneten Liste von Elementen.

Jetzt kannst du und die Autoren deines Blogs Listen von Beiträgen mit einem Shortcode wie dem folgenden hinzufügen:

[kinsta_get_posts post_type="book" book_category="sci-fi" numberposts="4" price_min=1 price_max=250]

Natürlich kannst du die Reihe der Argumente nach Belieben ändern und deine Tests in jedem Beitrag oder jeder Seite deiner Entwicklungswebsite ausführen.

Eine erweiterte Liste von Beiträgen, die mit der Funktion get_posts erstellt wurden.
Eine erweiterte Liste von Beiträgen, die mit der Funktion get_posts erstellt wurden.

Zusammenfassung

WordPress get_posts ist eine leistungsstarke Funktion, die es Entwicklern ermöglicht, Listen von Beiträgen überall auf dem Frontend deiner WordPress Website einzubinden. Es verwendet WP_Query, aber es ist einfacher zu bedienen und ist besser als WP_Query, wenn du nur Listen mit Beiträgen brauchst. Auf jeden Fall wird eine direkte Referenz auf WP_Query empfohlen, wenn du Beiträge in einer Schleife anzeigen musst.

Also, erstelle deine Listen, teste deinen Code, und wenn du sicher bist, dass er gut funktioniert, dann (und nur dann) schiebe ihn auf deine Live-Website (aber führe zuerst ein Backup durch).

Jetzt würden wir gerne von dir hören. Was sind deine Erfahrungen mit der WordPress get_posts function? Hast du irgendwelche Anwendungsfälle, die du mit uns teilen kannst? Tue dies in den Kommentaren unten!

Carlo Daniele Kinsta

Carlo is a passionate lover of webdesign and front-end development. He has been playing with WordPress for more than 20 years, also in collaboration with Italian and European universities and educational institutions. He has written hundreds of articles and guides about WordPress, published both on Italian and international websites, as well as on printed magazines. You can find him on LinkedIn.