{"id":29097,"date":"2019-10-31T07:17:25","date_gmt":"2019-10-31T14:17:25","guid":{"rendered":"https:\/\/kinsta.com\/?p=54548"},"modified":"2023-07-27T11:41:26","modified_gmt":"2023-07-27T10:41:26","slug":"wordpress-get_posts","status":"publish","type":"post","link":"https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/","title":{"rendered":"WordPress get_posts: Wie Man Diese N\u00fctzliche PHP-Funktion verwendet, um Listen von Beitr\u00e4gen zu Erstellen"},"content":{"rendered":"<p>WordPress <code>get_posts<\/code> ist eine leistungsstarke Funktion, mit der <a href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-entwickler-engagiert\/\">Entwickler<\/a> Inhalte aus der <a href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-datenbank\/\">WordPress-Datenbank<\/a> abrufen k\u00f6nnen. Du kannst bis ins kleinste Detail festlegen, welche Beitr\u00e4ge, Seiten und <a href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-benutzerdefinierte-beitragstypen\/\">benutzerdefinierten Posttypen<\/a> du suchst, deine benutzerdefinierte Ergebnismenge erhalten, dann die Elemente wie einen PHP\/MySQL-Ninja filtern und ordnen.<\/p>\n<p>Aber keine Angst, wenn du kein PHP-Profi bist, <a href=\"https:\/\/kinsta.com\/de\/blog\/tutorials-php\/\">es gibt unz\u00e4hlige PHP-Tutorials<\/a>, die du dir ansehen oder lesen und die Sprache lernen kannst. Du brauchst nur ein wenige <a href=\"https:\/\/kinsta.com\/de\/blog\/ist-php-tot\/\">PHP-Kenntnisse<\/a>, um benutzerdefinierte Listen von Beitr\u00e4gen zu erstellen, die auf deiner Website angezeigt werden sollen, da die Funktion <code>get_posts<\/code> eine Reihe von Parametern enth\u00e4lt, die es erm\u00f6glichen, einfache oder erweiterte Abfragen zu erstellen.<\/p>\n<p>Die Verwendung von WordPress <code>get_posts<\/code> ist ein zweistufiger Prozess:<\/p>\n<ul>\n<li>Zuerst musst du deine eigene Abfrage erstellen. Eigentlich wird es nicht wie eine MySQL-Abfrage aussehen, und du wirst keine <code>SELECT<\/code>-Anweisung schreiben. Du musst nur ein Array von Parametern definieren und es an die Funktion <code>get_posts<\/code> \u00fcbergeben. WordPress konvertiert dieses Array in eine echte und <strong>sichere<\/strong> MySQL-Abfrage, f\u00fchrt es gegen die Datenbank aus und gibt ein Array mit Beitr\u00e4gen zur\u00fcck.<\/li>\n<li>Zweitens musst du die von <code>get_posts<\/code> zur\u00fcckgegebene Ergebnismenge mit einem foreach-Zyklus durchlaufen.<\/li>\n<\/ul>\n<p>In diesem Beitrag werden wir zun\u00e4chst auf die oben genannten Schl\u00fcsselkonzepte eingehen, insbesondere wie <code>get_posts<\/code> funktioniert, wie man eine benutzerdefinierte Abfrage erstellt und wie man Daten auf der Startseite anzeigt.<br \/>\nDann werde ich ein Beispiel aus der Praxis mit einem Codeausschnitt liefern, den du in deiner Stagingumgebung f\u00fcr deine Tests und Entwicklungen kopieren, bearbeiten und verwenden kannst.<\/p>\n<p>Hinweis: Wir unterscheiden in der Regel zwischen Beitr\u00e4gen, Seiten und benutzerdefinierten Beitragsarten. In diesem Artikel <strong>verwenden wir den Begriff &#8222;<em>Beitr\u00e4ge<\/em>&#8220; f\u00fcr regelm\u00e4\u00dfige Blog-Eintr\u00e4ge sowie f\u00fcr Seiten und benutzerdefinierte Beitragsarten<\/strong>. Alle diese Posttypen werden in der Tabelle <em>wp_posts<\/em>&#8218; der Datenbank gespeichert. Der Hauptunterschied zwischen den Posttypen besteht im Wert des Feldes &#8222;<em>post_type<\/em>&#8222;. <strong>Aus Entwicklersicht sind Beitr\u00e4ge, Seiten und benutzerdefinierte Beitr\u00e4ge alle Beitr\u00e4ge.<\/strong><\/p>\n<ul>\n<li><a href=\"#get-posts\">Einf\u00fchrung in die WordPress get_posts Funktion<\/a><\/li>\n<li><a href=\"#parameters\">Wie man Abfragen mit get_posts-Parametern erstellt<\/a><\/li>\n<li><a href=\"#display\">Wie man get_posts Daten anzeigt<\/a><\/li>\n<li><a href=\"#example\">Beispiel aus der Praxis: Anzeigen einer hochgradig benutzerdefinierten Liste von Beitr\u00e4gen mit einem benutzerdefinierten Shortcode<\/a><\/li>\n<\/ul>\n<h2 id=\"get-posts\">Einf\u00fchrung in die WordPress get_posts Funktion<\/h2>\n<p>Der Kodex beschreibt <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/get_posts\/\">die Funktion <code>get_posts<\/code><\/a> wie folgt:<\/p>\n<blockquote><p>Ruft ein Array der letzten Beitr\u00e4ge oder Beitr\u00e4ge ab, die den angegebenen Kriterien entsprechen.<\/p><\/blockquote>\n<p>Wir k\u00f6nnen <code>get_posts<\/code> auf diese Weise verwenden:<\/p>\n<pre><code class=\"language-php\">$args = array(\n\t'numberposts'\t=&gt; 20,\n\t'category'\t\t=&gt; 4\n);\n$my_posts = get_posts( $args );\n\nif( ! empty( $my_posts ) ){\n\t$output = '&lt;ul&gt;';\n\tforeach ( $my_posts as $p ){\n\t\t$output .= '&lt;li&gt;&lt;a href=\"' . get_permalink( $p-&gt;ID ) . '\"&gt;' \n\t\t. $p-&gt;post_title . '&lt;\/a&gt;&lt;\/li&gt;';\n\t}\n\t$output .= '&lt;ul&gt;';\n}<\/code><\/pre>\n<p>Die obige Funktion ruft die letzten 20 Blog-Eintr\u00e4ge in der angegebenen Kategorie ab (standardm\u00e4\u00dfig ist der &#8218;<code>post_type<\/code>&#8218; &#8218;<code>post<\/code>&#8218;) und gibt ein Array von $post-Objekten zur\u00fcck. Du kannst \u00fcber das Array iterieren, um die Beitr\u00e4ge auf dem Bildschirm anzuzeigen. Es ist ziemlich einfach, oder?<\/p>\n<p><code>get_posts<\/code> <a href=\"https:\/\/kinsta.com\/blog\/wp-query\/\">verwendet <code>WP_Query<\/code><\/a>, um Postsendungen abzurufen, und es h\u00e4lt ein Array mit den gleichen Parametern in <code>WP_Query<\/code> verf\u00fcgbar (mit wenigen Ausnahmen). So haben wir eine riesige Liste von Variablen, die wir verwenden k\u00f6nnen, um unsere eigenen Abfragen zu erstellen. Diese Parameter sind in den folgenden <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_query\/#parameters\">15 Kategorien<\/a> zusammengefasst:<\/p>\n<ul>\n<li>Autorenparameter<\/li>\n<li>Kategorieparameter<\/li>\n<li>Tag-Parameter<\/li>\n<li>Taxonomie-Parameter<\/li>\n<li>Suchparameter<\/li>\n<li>Post &#038; Page Parameter<\/li>\n<li>Passwort-Parameter<\/li>\n<li>Post Type Parameter<\/li>\n<li>Auftrags- und Ordnungsparameter<\/li>\n<li>Datumsparameter<\/li>\n<li>Benutzerdefiniertes Feld (Post-Meta) Parameter<\/li>\n<li>Berechtigungsparameter<\/li>\n<li>Parameter f\u00fcr den Mime-Typ<\/li>\n<li>Caching-Parameter<\/li>\n<li>R\u00fcckgabefelder Parameter<\/li>\n<\/ul>\n<p>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\u00fchren kannst. Tauchen wir also tiefer in die Query-Parameter ein und beginnen wir, unsere Listen der Beitr\u00e4ge zu erstellen.<\/p>\n<h2 id=\"parameters\">Wie man Abfragen mit WordPress Erstellt get_posts<\/h2>\n<p>Jede Kategorie von Parametern bezieht sich auf die gleiche Information. Beispielsweise k\u00f6nnen wir eine Abfrage erstellen, um Beitr\u00e4ge von den angegebenen Autoren abzurufen oder den\/die angegebenen Autor(en) auszuschlie\u00dfen und den Autor nach ID oder Nickname zu definieren. Auf die gleiche Weise k\u00f6nnen wir Abfragen erstellen, die Beitr\u00e4ge nach Kategorie, Tag, Taxonomie, Datum, benutzerdefinierten Feldern und noch mehr abrufen.<\/p>\n<h3>So Verwendest du Parameter zum Erstellen Einfacher Abfragen<\/h3>\n<p>Viele Parameter k\u00f6nnen in \u00e4hnlicher Weise verwendet werden, unabh\u00e4ngig davon, welcher Kategorie sie angeh\u00f6ren. Die folgenden Parameter erlauben es beispielsweise, die Datenbank nach Postautor(en) abzufragen:<\/p>\n<ul>\n<li><code>author<\/code> (<em>int<\/em>) &#8211; Autoren-ID<\/li>\n<li><code>autor_name<\/code> (<em>string<\/em>) &#8211; <code>user_nicename<\/code> des autors<\/li>\n<li><code>author__in<\/code> (<em>array<\/em>) &#8211; ein Array aus mehreren Autoren-IDs<\/li>\n<li><code>author__not_in<\/code> (<em>array<\/em>) &#8211; ein Array von IDs mehrerer Autoren, die von der Ergebnismenge ausgeschlossen werden sollen.<\/li>\n<\/ul>\n<p>Wie k\u00f6nnen wir diese Parameter nutzen?<\/p>\n<p>Im folgenden Beispiel gibt der Parameter <code>'author'<\/code>\u00a0an, dass wir die neuesten Blog-Eintr\u00e4ge des Autors mit der ID = 1 haben m\u00f6chten:<\/p>\n<pre><code class=\"language-php\">$my_posts = get_posts( array( 'author' =&gt; 1 ) );<\/code><\/pre>\n<p>Der gleiche Parameter &#8218;author&#8216; erlaubt es, die Datenbank auf verschiedene Weise abzufragen:<\/p>\n<pre><code class=\"language-php\">\/\/ return an array of posts from specific authors\n$my_posts = get_posts( array( 'author' =&gt; '1,5,12' ) );<\/code><\/pre>\n<pre><code class=\"language-php\">\/\/ return an array of posts excluding the specified author\n$my_posts = get_posts( array( 'author' =&gt; -1 ) );<\/code><\/pre>\n<p>Je nach Wert des Parameters erh\u00e4ltst du also eine Ergebnismenge mit Beitr\u00e4gen eines einzelnen Autors (Integer), mehrerer Autoren (eine Liste kommagetrennter Werte) oder einem Autor (negative Werte).<\/p>\n<p>Andere Parameter sorgen f\u00fcr zus\u00e4tzliche Flexibilit\u00e4t. Der folgende Aufruf von <code>get_posts<\/code> liefert beispielsweise ein Array der neuesten Blog-Eintr\u00e4ge mehrerer Autoren:<\/p>\n<pre><code class=\"language-php\">\/\/ return an array of posts from multiple authors\n$my_posts = get_posts( array( 'author__in' =&gt; array( 1, 5, 12 ) ) );<\/code><\/pre>\n<p>Und wir k\u00f6nnen auch mehrere Autoren ausschlie\u00dfen:<\/p>\n<pre><code class=\"language-php\">\/\/ return an array of posts from multiple authors\n$my_posts = get_posts( array( 'author__not_in' =&gt; array( 1, 5, 12 ) ) );<\/code><\/pre>\n<p>Ebenso k\u00f6nnen wir Kategorieparameter, Tagparameter, Posttypparameter mit einigen spezifischen Unterschieden verwenden. Siehe z.B. Kategorieparameter:<\/p>\n<ul>\n<li><code>cat<\/code> (<em>int<\/em>)<\/li>\n<li><code>category_name<\/code> (<em>string<\/em>)<\/li>\n<li><code>category__and<\/code> (<em>array<\/em>)<\/li>\n<li><code>category__in<\/code> (<em>array<\/em>)<\/li>\n<li><code>category__not_in<\/code> (<em>array<\/em>)<\/li>\n<\/ul>\n<p>Jedenfalls sind nicht alle Parameter so einfach zu bedienen wie diese Parameter. Zus\u00e4tzlich k\u00f6nnen wir Kategorieparameter, Posttypparameter, Mime-Typparameter usw. in einer einzigen Abfrage verwenden. Dies bedeutet, dass wir eine detaillierte Kontrolle \u00fcber die Elemente in der Ergebnismenge haben und wir k\u00f6nnen erweiterte Abfragen erstellen, die auf Post-Typen, benutzerdefinierten Taxonomien und benutzerdefinierten Feldern basieren.<\/p>\n<p>Also, lasst uns tiefer tauchen!<\/p>\n<h3>Wie man Erweiterte Abfragen in WordPress Erstellt<\/h3>\n<p>Lasst uns einen Schritt vorw\u00e4rts gehen mit einer erweiterten Abfrage, die auf benutzerdefinierten Posttypen und benutzerdefinierten Taxonomien basiert. Angenommen, du hast die folgende Postart:<\/p>\n<p><strong>name<\/strong>: book<br \/>\n<strong>taxonomy name<\/strong>: book_category, book_author<br \/>\n<strong>support for<\/strong>: title, editor, thumbnail, excerpt, custom-fields<\/p>\n<h4>Benutzerdefinierte Posttypen und Benutzerdefinierte Taxonomien<\/h4>\n<p>Angenommen, du m\u00f6chtest eine Liste der neuesten B\u00fccher in der angegebenen benutzerdefinierten Taxonomie <code>book_category<\/code>. Hier ist das Array der Argumente:<\/p>\n<pre><code class=\"language-php\">$args = array(\n\t'post_type'\t\t=&gt; 'book',\n\t'tax_query'\t\t=&gt; array(\n\t\tarray(\n\t\t\t'taxonomy'\t=&gt; 'book_category',\n\t\t\t'field'\t\t=&gt; 'slug',\n\t\t\t'terms'\t\t=&gt; 'sci-fi'\n\t\t)\n\t),\n);<\/code><\/pre>\n<p>Die obigen Argumente sagen WordPress einfach, dass es alle B\u00fccher in der <code>'sci-fi'<\/code>\u00a0\u00a0<code>'book_category'<\/code>\u00a0abrufen soll.<\/p>\n<p>Der Parameter <code>'tax_query'<\/code>\u00a0nimmt ein Array von Argument-Arrays (d.h. ein Array von Arrays). Diese verschachtelten Arrays erm\u00f6glichen es, sehr komplexe Abfragen auf der Grundlage mehrerer Taxonomien zu erstellen, wie im folgenden Beispiel gezeigt:<\/p>\n<pre><code class=\"language-php\">$args = array(\n\t'numberposts'\t=&gt; 10,\n\t'post_type'\t\t=&gt; 'book',\n\t'relation'\t\t=&gt; 'AND',\n\t'tax_query'\t\t=&gt; array(\n\t\tarray(\n\t\t\t'taxonomy'\t=&gt; 'book_category',\n\t\t\t'field'\t\t=&gt; 'slug',\n\t\t\t'terms'\t\t=&gt; 'sci-fi'\n\t\t),\n\t\tarray(\n\t\t\t'taxonomy'\t=&gt; 'book_author',\n\t\t\t'field'\t\t=&gt; 'term_id',\n\t\t\t'terms'\t\t=&gt; 22\n\t\t)\n\t)\n);<\/code><\/pre>\n<p>Diese Parameter erm\u00f6glichen es uns, eine Liste der letzten 10 <code>'book'<\/code>-Posttypen in der &#8218;<code>sci-fi'<\/code>,<code>'book_category'<\/code>\u00a0abzurufen, die vom <code>'book_author'<\/code>\u00a0mit der ID #22 geschrieben wurde. Der Parameter <code>'relation'<\/code>\u00a0legt die logische Beziehung zwischen jeder Taxonomie fest, die in <code>'tax_query'<\/code>\u00a0aufgef\u00fchrt ist. Oben legen wir den Wert auf <code>AND<\/code>, da wir alle B\u00fccher der Kategorie <code>'sci-fi'<\/code>\u00a0<code>AND<\/code> des Autors #22 abrufen m\u00fcssen.<\/p>\n<h4>Wie man Meta-Abfragen mit Hilfe von Benutzerdefinierten Feldparametern Erstellt<\/h4>\n<p>Gelegentlich musst du Listen von Beitr\u00e4gen erstellen, die auf einem bestimmten Schl\u00fcssel und\/oder Wert eines benutzerdefinierten Feldes basieren.<\/p>\n<pre><code class=\"language-php\">$args = array(\n\t'meta_key'\t\t=&gt; 'cover',\n\t'meta_value'\t=&gt; 'paperback',\n\t'meta_compare'\t=&gt; '='\n);<\/code><\/pre>\n<p>Diese Parameter erlauben es uns, alle Beitr\u00e4ge nach Schl\u00fcssel und Wert des benutzerdefinierten Feldes abzurufen. <code>'meta_compare'<\/code>\u00a0setzt den Operator, der den Wert des Parameters <code>'meta_value'<\/code>\u00a0testen soll. Hier ist <code>'meta_value'<\/code>\u00a0<code>'='<\/code>, was auch der Standardwert ist.<\/p>\n<p>Verf\u00fcgbare Werte sind <code>'='<\/code>, <code>'!='<\/code>, <code>'&gt;'<\/code>, <code>'&gt;='<\/code>, <code>'&lt;'<\/code>, <code>'&lt;='<\/code>, <code>'LIKE'<\/code>, <code>'NOT LIKE'<\/code>, <code>'IN', 'NOT IN'<\/code>, <code>'BETWEEN'<\/code>, <code>'NOT BETWEEN'<\/code>, <code>'NOT EXISTS'<\/code>, <code>'REGEXP'<\/code>, <code>'NOT REGEXP'<\/code> or <code>'RLIKE'<\/code>.<\/p>\n<p>Dies ist ein ziemlich einfaches Beispiel, aber wir k\u00f6nnen erweiterte Abfragen erstellen. Im n\u00e4chsten Beispiel wird die Datenbank f\u00fcr Fantasy-B\u00fccher abgefragt, die nach 2010 ver\u00f6ffentlicht wurden:<\/p>\n<pre><code class=\"language-php\">$args = array(\n\t'post_type'\t\t=&gt; 'book',\n\t'meta_key'\t\t=&gt; 'year_published',\n\t'meta_value_num'\t=&gt; 2010,\n\t'meta_compare'\t=&gt; '&gt;',\n\t'tax_query'\t\t=&gt; array(\n\t\tarray(\n\t\t\t'taxonomy'\t=&gt; 'book_category',\n\t\t\t'field'\t\t=&gt; 'slug'\n\t\t\t'terms'\t\t=&gt; 'fantasy'\n\t\t)\n\t)\n);<\/code><\/pre>\n<p>Und wir k\u00f6nnen noch weiter gehen. Im n\u00e4chsten Beispiel mischen wir einen Post-Typ mit einer benutzerdefinierten Taxonomie und zwei benutzerdefinierten Feldern:<\/p>\n<pre><code class=\"language-php\">$args = array(\n\t'post_type'\t\t=&gt; 'book',\n\t'tax_query'\t\t=&gt; array(\n\t\tarray(\n\t\t\t'taxonomy'\t=&gt; 'book_category',\n\t\t\t'field'\t\t=&gt; 'slug'\n\t\t\t'terms'\t\t=&gt; array( 'fantasy' )\n\t\t)\n\t),\n\t'meta_query'\t=&gt; array(\n\t\t'relation'\t\t=&gt; 'AND',\n\t\tarray(\n\t\t\t'key'\t\t=&gt; 'year_published',\n\t\t\t'value'\t\t=&gt; 2010,\n\t\t\t'type'\t\t=&gt; 'numeric',\n\t\t\t'compare'\t=&gt; '&gt;',\n\t\t),\n\t\tarray(\n\t\t\t'key'\t\t=&gt; 'price',\n\t\t\t'value'\t\t=&gt; array( 10, 25 ),\n\t\t\t'type'\t\t=&gt; 'numeric',\n\t\t\t'compare'\t=&gt; 'BETWEEN',\n\t\t)\n\t)\n);<\/code><\/pre>\n<p>Hier stellen wir eine Reihe von Parametern ein, um eine Liste von Fantasy-B\u00fcchern zu erhalten, die nach 2010 ver\u00f6ffentlicht wurden und <code>BETWEEN<\/code> $10 und $25 kosten.<\/p>\n<p>Du kannst sehen, dass der Parameter <code>'meta_query'<\/code> \u00e4hnlich wie der Parameter <code>'tax_query<\/code>&#8218; funktioniert. Es h\u00e4lt ein Array von Arrays, so dass wir erweiterte Abfragen erstellen k\u00f6nnen, die auf mehreren Meta-Key\/Wert-Paaren basieren. Eine umfassende Liste der Query-Parameter und eine Reihe von Beispielen findet man in der <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_query\/\">Dokumentation <code>WP_Query<\/code><\/a>.<\/p>\n<h3>Warum ist get_posts auf 5 WordPress Beitr\u00e4ge Beschr\u00e4nkt?<\/h3>\n<p>Die Funktion <code>get_posts<\/code> verwendet die gleichen Argumente wie <code>WP_Query::parse_query()<\/code> (<a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/WP_Query\/parse_query\/\">siehe Codex<\/a>), aber einige spezifische Parameter bewirken, dass sie etwas anders funktioniert als ein <code>WP_Query<\/code>-Objekt.<\/p>\n<p>Vielleicht hast du den Parameter <code>'numberposts'<\/code> nicht in deinen Abfragen verwendet und fragst dich, warum du nur 5 Elemente in deiner Liste siehst.<\/p>\n<p>Standardm\u00e4\u00dfig bestimmt die Anzahl der Beitr\u00e4ge, die du auf der Admin-Seite <strong>Settings \u2192 Reading<\/strong> admin page festgelegt hast, die Anzahl der Beitr\u00e4ge, die von einer WordPress-Abfrage abgerufen werden sollen. Wie auch immer, wenn du keinen benutzerdefinierten Wert f\u00fcr <code>'numberposts'<\/code> oder <code>'posts_per_page'<\/code> angibst, gibt <code>get_posts<\/code> eine andere Anzahl von Beitr\u00e4gen zur\u00fcck.<\/p>\n<ul>\n<li><code>'numberposts'<\/code> ist die Gesamtzahl der Beitr\u00e4ge, die abgerufen werden k\u00f6nnen. Es ist ein Alias von <code>'posts_per_page'<\/code> in <code>WP_Query<\/code>, aber es gibt einen Unterschied zwischen den beiden: Standardm\u00e4\u00dfig ist die <strong>Anzahl der Beitr\u00e4ge, die bei Verwendung von <code>get_posts<\/code> abgerufen werden m\u00fcssen, 5,<\/strong> w\u00e4hrend <code>'posts_per_page'<\/code> in <code>WP_Query<\/code> standardm\u00e4\u00dfig auf die Anzahl der Beitr\u00e4ge pro Seite in deinem WordPress-Blog eingestellt ist. Du kannst den Standardwert \u00fcberschreiben, indem du einen benutzerdefinierten Wert f\u00fcr <code>'numberposts'<\/code> oder <code>'posts_per_page'<\/code> im Array der Argumente setzt.<\/li>\n<\/ul>\n<p>Zus\u00e4tzlich zu den <code>'numberposts'<\/code> sind die folgenden Parameter spezifisch f\u00fcr <code>get_posts<\/code>:<\/p>\n<ul>\n<li><code>'category'<\/code> ist eine kommagetrennte Liste von Kategorie-IDs. Es ist ein Alias des Parameters <code>'cat'<\/code> in <code>WP_Query<\/code>.<\/li>\n<li><code>'include'<\/code> ist eine kommagetrennte Liste von Post-IDs. Dies ist ein Alias des Parameters <code>'post__in'<\/code> in <code>WP_Query<\/code>.<\/li>\n<li><code>'exclude'<\/code> ist eine kommagetrennte Liste von Post-IDs.<\/li>\n<li><code>'suppress_filters'<\/code> gibt an, ob Filter unterdr\u00fcckt werden sollen. Dieser Parameter ist in <code>get_posts<\/code> standardm\u00e4\u00dfig auf <code>true<\/code> gesetzt, w\u00e4hrend er in <code>WP_Query<\/code> auf <code>false<\/code> gesetzt ist (<a href=\"https:\/\/core.trac.wordpress.org\/browser\/tags\/5.2\/src\/wp-includes\/class-wp-query.php#L709\">siehe Track<\/a>).<\/li>\n<\/ul>\n<p>Die Funktion <code>get_posts<\/code> ist in <code>wp-includes\/post.php<\/code> definiert. Du kannst tief in die Funktionsweise von <code>get_posts<\/code> eintauchen, indem du den Quellcode entweder <a href=\"https:\/\/core.trac.wordpress.org\/browser\/tags\/5.2\/src\/wp-includes\/post.php#L1901\">auf Track (WordPress 5.2)<\/a> oder in deiner lokalen WordPress-Installation \u00fcberpr\u00fcfst.<\/p>\n<h3>Bestellpositionen<\/h3>\n<p><code>'orderby'<\/code>\u00a0und <code>'order'<\/code> sortieren die Elemente in der Ergebnismenge. Du sortierst Beitr\u00e4ge nach <code>'ID'<\/code>, <code>'author'<\/code>, <code>'title'<\/code>, <code>'name'<\/code>, <code>'type'<\/code>, <code>'date'<\/code>, <code>'modified'<\/code>, <code>'parent'<\/code>, <code>'rand'<\/code>, <code>'comment_count'<\/code> und in vielerlei anderer Hinsicht in aufsteigender oder absteigender Reihenfolge.<\/p>\n<p>Wenn du eine einfache Abfrage hast, musst du nur einen Wert f\u00fcr <code>'order'<\/code> und <code>'orderby'<\/code> setzen. Im folgenden Beispiel werden die Beitr\u00e4ge nach Postnamen in aufsteigender Reihenfolge sortiert:<\/p>\n<pre><code class=\"language-php\">$args = array(\n\t'author'\t=&gt; '1,5,12',\n\t'orderby'\t=&gt; 'name',\n\t'order'\t\t=&gt; 'ASC'\n);<\/code><\/pre>\n<p>Das ist ziemlich einfach. Aber was w\u00e4re, wenn du eine erweiterte Abfrage h\u00e4ttest? Z.B.: K\u00f6nnen wir Elemente nach einem oder mehreren benutzerdefinierten Feldwerten in einer erweiterten Meta-Abfrage sortieren?<\/p>\n<p>WordPress 4.0 und <a href=\"https:\/\/make.wordpress.org\/core\/2015\/03\/30\/query-improvements-in-wp-4-2-orderby-and-meta_query\/\">WordPress 4.2 brachten wichtige Verbesserungen<\/a> f\u00fcr die Parameter <code>'orderby'<\/code> und <code>'meta_query'<\/code>. Wir haben nun eine neue Syntax f\u00fcr die Reihenfolge nach bestimmten Klauseln einer Meta-Abfrage. Dank der neuen Syntax k\u00f6nnen wir Indizes verwenden, um aus dem Parameter <code>'orderby'<\/code> Verweise auf die spezifischen Klauseln der Metaabfrage zu erstellen.<\/p>\n<p>Dank dieser Verbesserungen kann die Meta-Abfrage im obigen Beispiel wie folgt geschrieben werden:<\/p>\n<pre><code class=\"language-php\">$args = array(\n\t'meta_query'\t=&gt; array(\n\t\t'relation'\t\t=&gt; 'AND',\n\t\t'year_clause' =&gt; array(\n\t\t\t'key'\t\t=&gt; 'year_published',\n\t\t\t'value'\t\t=&gt; 2010,\n\t\t\t'type'\t\t=&gt; 'numeric',\n\t\t\t'compare'\t=&gt; '&gt;',\n\t\t),\n\t\t'price_clause' =&gt; array(\n\t\t\t'key'\t\t=&gt; 'price',\n\t\t\t'value'\t\t=&gt; array( 10, 25 ),\n\t\t\t'type'\t\t=&gt; 'numeric',\n\t\t\t'compare'\t=&gt; 'BETWEEN',\n\t\t)\n\t),\n\t'orderby' =&gt; 'price_clause',\n);<\/code><\/pre>\n<p>Im obigen Beispiel haben wir Elemente nach <code>'price_clause'<\/code> geordnet.<\/p>\n<p>Und wir k\u00f6nnen noch mehr tun. <a href=\"https:\/\/make.wordpress.org\/core\/2014\/08\/29\/a-more-powerful-order-by-in-wordpress-4-0\/\">Ab WordPress 4.0<\/a> k\u00f6nnen wir an <code>get_posts<\/code> ein Array von Meta-Abfrage-Indizes anstelle eines einzelnen Index \u00fcbergeben, wie im folgenden Beispiel gezeigt:<\/p>\n<pre><code class=\"language-php\">$args = array(\n\t'meta_query'\t=&gt; array(\n\t\t'relation'\t\t=&gt; 'AND',\n\t\t'year_clause' =&gt; array(\n\t\t\t'key'\t\t=&gt; 'year_published',\n\t\t\t'value'\t\t=&gt; 2010,\n\t\t\t'type'\t\t=&gt; 'numeric',\n\t\t\t'compare'\t=&gt; '&gt;',\n\t\t),\n\t\t'price_clause' =&gt; array(\n\t\t\t'key'\t\t=&gt; 'price',\n\t\t\t'value'\t\t=&gt; array( 10, 25 ),\n\t\t\t'type'\t\t=&gt; 'numeric',\n\t\t\t'compare'\t=&gt; 'BETWEEN',\n\t\t)\n\t),\n\t'orderby' =&gt; array( 'price_clause' =&gt; 'ASC', 'year_clause' =&gt; 'DESC' ),\n);<\/code><\/pre>\n<p>Herzlichen Gl\u00fcckwunsch, du hast eine erweiterte Meta-Abfrage erstellt und die Ergebnisse zuerst nach <code>'price_clause'<\/code> in aufsteigender Reihenfolge, dann nach <code>'year_clause'<\/code> in absteigender Reihenfolge sortiert.<\/p>\n<p>Die <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_query\/#order-orderby-parameters\">vollst\u00e4ndige Liste der Sortieroptionen<\/a> findest du im Codex.<\/p>\n<p>Es ist an der Zeit, dass wir Daten auf der Titelseite anzeigen.<\/p>\n<p>Empfohlene Lekt\u00fcre: <a href=\"https:\/\/kinsta.com\/de\/blog\/phpinfo\/\">How to Easily Create and Use a phpinfo Page<\/a>.<\/p>\n<h2 id=\"display\">Wie man get_posts Zur\u00fcckgegebene Daten Anzeigt<\/h2>\n<p>WordPress <code>get_posts<\/code> gibt ein Array von <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_post\/\"><code>WP_Post<\/code>-Objekten<\/a> zur\u00fcck, das uns Zugriff auf eine Reihe von Variablen f\u00fcr jeden ausgew\u00e4hlten Beitrag gibt, der in der Datenbanktabelle <code>wp_posts<\/code> gespeichert ist:<\/p>\n<ul>\n<li>ID<\/li>\n<li>post_author<\/li>\n<li>post_name<\/li>\n<li>post_type<\/li>\n<li>post_title<\/li>\n<li>post_date<\/li>\n<li>post_date_gmt<\/li>\n<li>post_content<\/li>\n<li>post_excerpt<\/li>\n<li>post_status<\/li>\n<li>comment_status<\/li>\n<li>ping_status<\/li>\n<li>post_password<\/li>\n<li>post_parent<\/li>\n<li>post_modified<\/li>\n<li>post_modified_gmt<\/li>\n<li>comment_count<\/li>\n<li>menu_order<\/li>\n<\/ul>\n<figure id=\"attachment_54556\" aria-describedby=\"caption-attachment-54556\" style=\"width: 2176px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-54556 size-full\" src=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2019\/08\/wp-posts-tabellenstruktur-1.png\" alt=\"wp_posts Tabellenstruktur in phpMyAdmin\" width=\"2176\" height=\"1542\"><figcaption id=\"caption-attachment-54556\" class=\"wp-caption-text\">wp_posts Tabellenstruktur in phpMyAdmin<\/figcaption><\/figure>\n<p>Du kannst leicht auf diese Daten mit einem <code>foreach<\/code> wie dem folgenden zugreifen:<\/p>\n<pre><code class=\"language-php\">$custom_posts = get_posts( $args );\n\nif( ! empty( $custom_posts ) ){\n\t$output = '&lt;ul&gt;';\n\tforeach ( $custom_posts as $p ){\n\n\t\t$output .= '&lt;li&gt;&lt;a href=\"' \n\t\t. get_permalink( $p-&gt;ID ) . '\"&gt;' \n\t\t. $p-&gt;post_title . '&lt;\/a&gt;&lt;\/li&gt;';\n\t}\n\n\t$output .= '&lt;\/ul&gt;';\n}\n\nreturn $output ?? '&lt;strong&gt;Sorry. No posts matching your criteria!&lt;\/strong&gt;';<\/code><\/pre>\n<p>Wenn <code>get_posts<\/code> mindestens einen Beitrag gefunden hat, gibt es eine Reihe von Elementen zur\u00fcck, die wir durchlaufen k\u00f6nnen, um den Titel des Beitrags und einen Link zum urspr\u00fcnglichen Beitrag anzuzeigen. Wir haben die <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/get_permalink\/\">Funktion <code>get_permalink<\/code><\/a> verwendet, um den Post-Permalink abzurufen, da wir keine entsprechende Variable <code>WP_Post<\/code> haben.<\/p>\n<p>Das ist ziemlich einfach, aber wie k\u00f6nnen wir diesen Code implementieren und unsere eigenen Listen von Beitr\u00e4gen mit WordPress <code>get_posts<\/code> erstellen?<\/p>\n<p>Du kannst Listen von Beitr\u00e4gen auf deinen Seiten auf verschiedene Weise anzeigen.<\/p>\n<ul>\n<li>Du kannst sie \u00fcberall auf der Seite einf\u00fcgen, indem du die <a href=\"https:\/\/kinsta.com\/de\/blog\/child-theme-wordpress-erstellen\/\">Seitenvorlage eines Child Themes bearbeitest.<\/a><\/li>\n<li>Du kannst sie in ein <a href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-widgets\/\">Sidebar-Widget<\/a> aufnehmen.<\/li>\n<li>Du kannst sie mit einem <a href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-shortcodes\/\">benutzerdefinierten Shortcode<\/a> in den Inhalt eines Beitrags aufnehmen.<\/li>\n<\/ul>\n<h2 id=\"example\">Beispiel aus der Praxis: So zeigt man eine Benutzerdefinierte Liste von Elementen Mit einer Kurznummer an<\/h2>\n<p>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 <a href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-shortcodes\/\">fr\u00fcheren Blogbeitrag<\/a> behandelt haben.<\/p>\n<p>Erstelle zun\u00e4chst ein neues Verzeichnis im Ordner <code>wp-content\/plugins<\/code> deiner <a href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-lokal-installieren\/\">lokalen WordPress-Installation<\/a> oder in einer <a href=\"https:\/\/kinsta.com\/de\/docs\/wordpress-hosting\/staging-umgebung\/\">Stagingumgebung<\/a>. In diesem Beispiel habe ich das Verzeichnis <strong>kinsta-shortcodes<\/strong> benannt.<\/p>\n<p>In <code>wp-content\/plugins\/<strong>kinsta-shortcodes<\/strong>\/<\/code> erstelle eine.php-Datei mit dem gleichen Namen wie das neue Verzeichnis: <code>kinsta-shortcodes.php<\/code>.<\/p>\n<p>\u00d6ffne die neue Datei in deinem <a href=\"https:\/\/kinsta.com\/de\/blog\/besten-texteditoren\/\">bevorzugten Texteditor<\/a> und f\u00fcge die folgende \u00dcberschrift hinzu:<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\/**\n * @package Kinsta_shortcodes\n * @version 1.0\n *\/\n\/*\nPlugin Name: Kinsta shortcodes\nPlugin URI: http:\/\/wordpress.org\/extend\/plugins\/#\nDescription: This is an example plugin \nAuthor: Your Name\nVersion: 1.0\nAuthor URI: https:\/\/yourwebsite.com\/\n*\/<\/code><\/pre>\n<p>Jetzt haben wir ein brandneues Plugin, aber es tut immer noch nichts. Gehe zu <strong>Plugins<\/strong> Admin-Bildschirm in deinem <a href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-admin\/\">WordPress Dashboard<\/a> und aktiviere das neue Plugin, um sicherzustellen, dass du <a href=\"https:\/\/kinsta.com\/de\/blog\/debugging-wordpress\/#how-to-manually-enable-wordpress-debug-mode\"><code>WP_DEBUG<\/code> in deiner <code>wp-config.php<\/code> Datei auf <code>true<\/code><\/a> gesetzt hast.<\/p>\n<p>Deine Sandbox ist nun bereit f\u00fcr deine Hacks. Der n\u00e4chste Schritt besteht darin, einen Hook f\u00fcr einen benutzerdefinierten Shortcode zu registrieren:<\/p>\n<pre><code class=\"language-php\">\/**\n * Add a hook for a shortcode tag\n *\/\nfunction kinsta_shortcodes_init(){\n\tadd_shortcode( 'kinsta_get_posts', 'kinsta_get_posts_cb' );\n}\nadd_action('init', 'kinsta_shortcodes_init');<\/code><\/pre>\n<p><code>kinsta_get_posts<\/code> ist der Shortcode-Name und <code>kinsta_get_posts_cb<\/code> ist der unten definierte Callback:<\/p>\n<pre><code class=\"language-php\">\/**\n * Register a shortcode\n *\n * @param array $atts Array of shortcode attributes\n *\/\nfunction kinsta_get_posts_cb( $atts ){\n\n\t\/\/ safely extract custom arguments and set default values\n\textract( shortcode_atts(\n\t\t\tarray(\n\t\t\t\t'numberposts'\t\t=&gt; 3,\n\t\t\t\t'post_type'\t\t\t=&gt; 'post',\n\t\t\t\t'book_category'\t\t=&gt; 'fantasy',\n\t\t\t\t'year_published'\t=&gt; 1900,\n\t\t\t\t'price_min'\t\t\t=&gt; 0,\n\t\t\t\t'price_max'\t\t\t=&gt; 50\n\t\t\t),\n\t\t\t$atts,\n\t\t\t'kinsta_get_posts'\n\t\t) );\n\n\t\/\/ define the array of query arguments\n\t$args = array(\n\t\t'numberposts'\t=&gt; $numberposts,\n\t\t'post_type'\t\t=&gt; $post_type,\n\t\t'tax_query'\t\t=&gt; array(\n\t\t\tarray(\n\t\t\t\t'taxonomy'\t=&gt; 'book_category',\n\t\t\t\t'field'\t\t=&gt; 'slug',\n\t\t\t\t'terms'\t\t=&gt; $book_category,\n\t\t\t)\n\t\t),\n\t\t'meta_query'\t=&gt; array(\n\t\t\t'relation'\t\t=&gt; 'AND',\n\t\t\t'year_clause'\t=&gt; array(\n\t\t\t\t'key'\t\t=&gt; 'year_published',\n\t\t\t\t'value'\t\t=&gt; $year_published,\n\t\t\t\t'type'\t\t=&gt; 'numeric',\n\t\t\t\t'compare'\t=&gt; '&gt;',\n\t\t\t),\n\t\t\t'price_clause'\t=&gt; array(\n\t\t\t\t'key'\t\t=&gt; 'price',\n\t\t\t\t'value'\t\t=&gt; array( $price_min, $price_max ),\n\t\t\t\t'type'\t\t=&gt; 'numeric',\n\t\t\t\t'compare'\t=&gt; 'BETWEEN',\n\t\t\t)\n\t\t),\n\t\t'orderby' =&gt; array( 'price_clause' =&gt; 'ASC' )\n\t);\n\n\t$custom_posts = get_posts( $args );\n\n\tif( ! empty( $custom_posts ) ){\n\t\t$output = '&lt;ul&gt;';\n\t\tforeach ( $custom_posts as $p ){\n\n\t\t\t$output .= '&lt;li&gt;&lt;a href=\"' \n\t\t\t. get_permalink( $p-&gt;ID ) . '\"&gt;' \n\t\t\t. $p-&gt;post_title . '&lt;\/a&gt; (' \n\t\t\t. get_post_meta( $p-&gt;ID, 'year_published', true ) \n\t\t\t. ') - Price: ' . get_post_meta( $p-&gt;ID, 'price', true ) . '&lt;\/li&gt;';\n\t\t}\n\n\t\t$output .= '&lt;\/ul&gt;';\n\t}\n\nreturn $output ?? '&lt;strong&gt;Sorry. No posts matching your criteria!&lt;\/strong&gt;';<\/code><\/pre>\n<p>Wir setzen sechs Shortcode-Eigenschaften, die wir verwenden, um ein Array von Parametern zu definieren, das schlie\u00dflich an die WordPress <code>get_posts<\/code>-Funktion \u00fcbergeben wird. Wenn <code>$custom_posts<\/code> nicht leer ist, dann erzeugt ein <code>foreach<\/code> das HTML einer ungeordneten Liste von Elementen.<\/p>\n<p>Jetzt kannst du und die Autoren deines Blogs Listen von Beitr\u00e4gen mit einem Shortcode wie dem folgenden hinzuf\u00fcgen:<\/p>\n<pre>[kinsta_get_posts post_type=\"book\" book_category=\"sci-fi\" numberposts=\"4\" price_min=1 price_max=250]<\/pre>\n<p>Nat\u00fcrlich kannst du die Reihe der Argumente nach Belieben \u00e4ndern und deine Tests in jedem Beitrag oder jeder Seite deiner Entwicklungswebsite ausf\u00fchren.<\/p>\n<figure id=\"attachment_54811\" aria-describedby=\"caption-attachment-54811\" style=\"width: 1532px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-54811 size-full\" src=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2019\/10\/get_posts-liste-beitragen-1.png\" alt=\"Eine erweiterte Liste von Beitr\u00e4gen, die mit der Funktion get_posts erstellt wurden.\" width=\"1532\" height=\"1066\"><figcaption id=\"caption-attachment-54811\" class=\"wp-caption-text\">Eine erweiterte Liste von Beitr\u00e4gen, die mit der Funktion get_posts erstellt wurden.<\/figcaption><\/figure>\n\n<h2>Zusammenfassung<\/h2>\n<p>WordPress <strong>get_posts<\/strong> ist eine leistungsstarke Funktion, die es Entwicklern erm\u00f6glicht, Listen von Beitr\u00e4gen \u00fcberall auf dem Frontend deiner WordPress Website einzubinden. Es verwendet <code>WP_Query<\/code>, aber es ist einfacher zu bedienen und ist besser als <code>WP_Query<\/code>, wenn du nur Listen mit Beitr\u00e4gen brauchst. Auf jeden Fall wird eine direkte Referenz auf <code>WP_Query<\/code> empfohlen, wenn du Beitr\u00e4ge in einer <a href=\"https:\/\/codex.wordpress.org\/The_Loop\">Schleife<\/a> anzeigen musst.<\/p>\n<p>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 (<a href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-backup-plugins\/\">aber f\u00fchre zuerst ein Backup durch<\/a>).<\/p>\n<p>Jetzt w\u00fcrden wir gerne von dir h\u00f6ren. Was sind deine Erfahrungen mit der WordPress <code>get_posts<\/code> function? Hast du irgendwelche Anwendungsf\u00e4lle, die du mit uns teilen kannst? Tue dies in den Kommentaren unten!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WordPress get_posts ist eine leistungsstarke Funktion, mit der Entwickler Inhalte aus der WordPress-Datenbank abrufen k\u00f6nnen. Du kannst bis ins kleinste Detail festlegen, welche Beitr\u00e4ge, Seiten und &#8230;<\/p>\n","protected":false},"author":36,"featured_media":29125,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[28,214],"topic":[959,970],"class_list":["post-29097","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-webdev","tag-wp_query","topic-php-lernen","topic-php-funktion"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>WordPress get_posts: Wie Man Diese N\u00fctzliche PHP-Funktion verwendet, um Listen von Beitr\u00e4gen zu Erstellen<\/title>\n<meta name=\"description\" content=\"Musst du Listen mit Beitr\u00e4gen, Seiten oder benutzerdefinierten Beitragsarten erstellen? Erfahre in diesem ausf\u00fchrlichen Tutorial, wie du es mit der WordPress get_posts-Funktion machst!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"WordPress get_posts: Wie Man Diese N\u00fctzliche PHP-Funktion verwendet, um Listen von Beitr\u00e4gen zu Erstellen\" \/>\n<meta property=\"og:description\" content=\"Musst du Listen mit Beitr\u00e4gen, Seiten oder benutzerdefinierten Beitragsarten erstellen? Erfahre in diesem ausf\u00fchrlichen Tutorial, wie du es mit der WordPress get_posts-Funktion machst!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-10-31T14:17:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-07-27T10:41:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2019\/10\/wordpress-get_posts-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Carlo Daniele\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Musst du Listen mit Beitr\u00e4gen, Seiten oder benutzerdefinierten Beitragsarten erstellen? Erfahre in diesem ausf\u00fchrlichen Tutorial, wie du es mit der WordPress get_posts-Funktion machst!\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2019\/10\/wordpress-get_posts-1.png\" \/>\n<meta name=\"twitter:creator\" content=\"@carlodaniele\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_DE\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Carlo Daniele\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"17\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/\"},\"author\":{\"name\":\"Carlo Daniele\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63\"},\"headline\":\"WordPress get_posts: Wie Man Diese N\u00fctzliche PHP-Funktion verwendet, um Listen von Beitr\u00e4gen zu Erstellen\",\"datePublished\":\"2019-10-31T14:17:25+00:00\",\"dateModified\":\"2023-07-27T10:41:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/\"},\"wordCount\":2442,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/de\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2019\/10\/wordpress-get_posts-1.png\",\"keywords\":[\"webdev\",\"WP_Query\"],\"articleSection\":[\"WordPress Entwicklung\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/\",\"url\":\"https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/\",\"name\":\"WordPress get_posts: Wie Man Diese N\u00fctzliche PHP-Funktion verwendet, um Listen von Beitr\u00e4gen zu Erstellen\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2019\/10\/wordpress-get_posts-1.png\",\"datePublished\":\"2019-10-31T14:17:25+00:00\",\"dateModified\":\"2023-07-27T10:41:26+00:00\",\"description\":\"Musst du Listen mit Beitr\u00e4gen, Seiten oder benutzerdefinierten Beitragsarten erstellen? Erfahre in diesem ausf\u00fchrlichen Tutorial, wie du es mit der WordPress get_posts-Funktion machst!\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2019\/10\/wordpress-get_posts-1.png\",\"contentUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2019\/10\/wordpress-get_posts-1.png\",\"width\":1460,\"height\":730,\"caption\":\"WordPress get_posts: Wie Man Diese N\u00fctzliche PHP-Funktion verwendet, um Listen von Beitr\u00e4gen zu Erstellen\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PHP lernen\",\"item\":\"https:\/\/kinsta.com\/de\/thema\/php-lernen\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"WordPress get_posts: Wie Man Diese N\u00fctzliche PHP-Funktion verwendet, um Listen von Beitr\u00e4gen zu Erstellen\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/de\/#website\",\"url\":\"https:\/\/kinsta.com\/de\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/de\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/de\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/de\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\",\"https:\/\/x.com\/Kinsta_DE\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63\",\"name\":\"Carlo Daniele\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g\",\"caption\":\"Carlo Daniele\"},\"description\":\"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.\",\"sameAs\":[\"https:\/\/frammentidicodice.com\/\",\"https:\/\/x.com\/carlodaniele\"],\"url\":\"https:\/\/kinsta.com\/de\/blog\/author\/carlodaniele\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"WordPress get_posts: Wie Man Diese N\u00fctzliche PHP-Funktion verwendet, um Listen von Beitr\u00e4gen zu Erstellen","description":"Musst du Listen mit Beitr\u00e4gen, Seiten oder benutzerdefinierten Beitragsarten erstellen? Erfahre in diesem ausf\u00fchrlichen Tutorial, wie du es mit der WordPress get_posts-Funktion machst!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/","og_locale":"de_DE","og_type":"article","og_title":"WordPress get_posts: Wie Man Diese N\u00fctzliche PHP-Funktion verwendet, um Listen von Beitr\u00e4gen zu Erstellen","og_description":"Musst du Listen mit Beitr\u00e4gen, Seiten oder benutzerdefinierten Beitragsarten erstellen? Erfahre in diesem ausf\u00fchrlichen Tutorial, wie du es mit der WordPress get_posts-Funktion machst!","og_url":"https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","article_published_time":"2019-10-31T14:17:25+00:00","article_modified_time":"2023-07-27T10:41:26+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2019\/10\/wordpress-get_posts-1.png","type":"image\/png"}],"author":"Carlo Daniele","twitter_card":"summary_large_image","twitter_description":"Musst du Listen mit Beitr\u00e4gen, Seiten oder benutzerdefinierten Beitragsarten erstellen? Erfahre in diesem ausf\u00fchrlichen Tutorial, wie du es mit der WordPress get_posts-Funktion machst!","twitter_image":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2019\/10\/wordpress-get_posts-1.png","twitter_creator":"@carlodaniele","twitter_site":"@Kinsta_DE","twitter_misc":{"Verfasst von":"Carlo Daniele","Gesch\u00e4tzte Lesezeit":"17\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/"},"author":{"name":"Carlo Daniele","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63"},"headline":"WordPress get_posts: Wie Man Diese N\u00fctzliche PHP-Funktion verwendet, um Listen von Beitr\u00e4gen zu Erstellen","datePublished":"2019-10-31T14:17:25+00:00","dateModified":"2023-07-27T10:41:26+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/"},"wordCount":2442,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/de\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2019\/10\/wordpress-get_posts-1.png","keywords":["webdev","WP_Query"],"articleSection":["WordPress Entwicklung"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/","url":"https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/","name":"WordPress get_posts: Wie Man Diese N\u00fctzliche PHP-Funktion verwendet, um Listen von Beitr\u00e4gen zu Erstellen","isPartOf":{"@id":"https:\/\/kinsta.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2019\/10\/wordpress-get_posts-1.png","datePublished":"2019-10-31T14:17:25+00:00","dateModified":"2023-07-27T10:41:26+00:00","description":"Musst du Listen mit Beitr\u00e4gen, Seiten oder benutzerdefinierten Beitragsarten erstellen? Erfahre in diesem ausf\u00fchrlichen Tutorial, wie du es mit der WordPress get_posts-Funktion machst!","breadcrumb":{"@id":"https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/#primaryimage","url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2019\/10\/wordpress-get_posts-1.png","contentUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2019\/10\/wordpress-get_posts-1.png","width":1460,"height":730,"caption":"WordPress get_posts: Wie Man Diese N\u00fctzliche PHP-Funktion verwendet, um Listen von Beitr\u00e4gen zu Erstellen"},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/de\/blog\/wordpress-get_posts\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/de\/"},{"@type":"ListItem","position":2,"name":"PHP lernen","item":"https:\/\/kinsta.com\/de\/thema\/php-lernen\/"},{"@type":"ListItem","position":3,"name":"WordPress get_posts: Wie Man Diese N\u00fctzliche PHP-Funktion verwendet, um Listen von Beitr\u00e4gen zu Erstellen"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/de\/#website","url":"https:\/\/kinsta.com\/de\/","name":"Kinsta\u00ae","description":"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen","publisher":{"@id":"https:\/\/kinsta.com\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/de\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","https:\/\/x.com\/Kinsta_DE","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/962dde02ea6f5df089b5d8d0853bbc63","name":"Carlo Daniele","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/429e5568f88110fd9a409b84cb22197e?s=96&d=mm&r=g","caption":"Carlo Daniele"},"description":"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.","sameAs":["https:\/\/frammentidicodice.com\/","https:\/\/x.com\/carlodaniele"],"url":"https:\/\/kinsta.com\/de\/blog\/author\/carlodaniele\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/29097","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/users\/36"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/comments?post=29097"}],"version-history":[{"count":9,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/29097\/revisions"}],"predecessor-version":[{"id":34688,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/29097\/revisions\/34688"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/29097\/translations\/en"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/29097\/translations\/pt"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/29097\/translations\/es"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/29097\/translations\/fr"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/29097\/translations\/nl"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/29097\/translations\/it"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/29097\/translations\/de"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/29097\/translations\/se"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/29097\/translations\/jp"},{"href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/29097\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/media\/29125"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/media?parent=29097"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/tags?post=29097"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/topic?post=29097"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}