Heim >CMS-Tutorial >WordDrücken Sie >Erforschen der WordPress Get_Posts -Funktion
Viele WordPress -Plugins rufen Beiträge aus der Datenbank ab, indem Sie die Sortierreihenfolge anpassen und Beiträge basierend auf einem bestimmten Meta -Schlüssel oder einer Taxonomie abrufen. Haben Sie sich jemals gefragt, wie diese Plugins angepasste Beiträgelisten abrufen, ohne SQL -Abfragen zu schreiben? In diesem Tutorial lernen wir genau das.
In diesem Artikel untersuchen wir die Funktion von Get_Posts () mit einigen Beispielen, wie sie in Ihren eigenen Projekten verwendet werden. Wir werden auch einige typische Anwendungsfälle für diese Funktion abdecken und wie sie sich vom WP_Query -Objekt und der Funktion get_pages unterscheidet.
Die Funktion get_posts ist seit WordPress 1.2.0 in WordPress Core verfügbar. Diese Funktion wird im Grunde genommen verwendet, um Beiträge aus der Datenbank abzurufen, indem benutzerdefinierte Filter angewendet und das Endergebnis basierend auf einer Reihe von Parametern sortiert werden.
Die Funktion get_posts () gibt ein Array von WP_POST -Objekten zurück. Jedes WP_POST -Objekt repräsentiert einen einzelnen Beitrag.
intern get_posts verwendet das WP_Query -Objekt, um die SQL -Abfragen basierend auf dem übergebenen Parametersatz zu konstruieren und auszuführen.
Hinweis: Beiträge bedeutet Post-, Seite und benutzerdefinierte Beitragstyp.
Plugins Verwenden Sie die Funktion get_posts anstelle von WP_Query -Objekt, da die Verwendung des WP_QUERY -Objekts direkt die Hauptschleife (d. H. Die globale Variable $ wp_query) verändert, die Site -Probleme verursachen würde.
Beide werden verwendet, um Beiträge aus der WordPress -Datenbank abzurufen. Hier sind jedoch einige der Unterschiede zwischen ihnen:
Die Funktion get_posts nimmt nur ein Argument als Array. Das Array enthält die verschiedenen Parameter, um benutzerdefinierte Filter anzuwenden und das Ergebnis zu sortieren.
Hier ist ein Code -Beispiel, in dem angezeigt wird, wie diese Funktion aufgerufen wird, und die verschiedenen verfügbaren Parameter:
<span><span><?php </span></span><span> </span><span><span>$args = array( </span></span><span> <span>"posts_per_page" => 5, </span></span><span> <span>"paged" => 1 </span></span><span> <span>"tax_query" => array( </span></span><span> <span>array( </span></span><span> <span>"taxonomy" => "category", </span></span><span> <span>"field" => "slug", </span></span><span> <span>"terms" => "videos,movies", </span></span><span> <span>) </span></span><span> <span>), </span></span><span> <span>"orderby" => "post_date", </span></span><span> <span>"order" => "DESC", </span></span><span> <span>"exclude" => "1123, 4456", </span></span><span> <span>"meta_key" => "", </span></span><span> <span>"meta_value" => "", </span></span><span> <span>"post_type" => "post", </span></span><span> <span>"post_status" => "publish" </span></span><span><span>); </span></span><span> </span><span><span>$posts_array = get_posts($args); </span></span><span> </span><span><span>?></span></span>
Es sind mehr Parameter verfügbar, aber dies sind die am häufigsten verwendeten. Schauen wir uns jede dieser Parameter an:
Die Funktion get_posts gibt ein Array zurück, das WP_POST -Objekte enthält. Hier sind die wichtigen Eigenschaften des WP_POST -Objekts:
Schauen wir uns einige Beispiele anhand der Funktion get_posts an.
Wenn Sie die oberste N -Nummer der am meisten besprochenen Beiträge auf Ihrer Website anzeigen möchten, können Sie Get_Posts verwenden, um sie abzurufen. Hier ist ein Beispiel:
<span><span><?php </span></span><span> </span><span><span>$args = array( </span></span><span> <span>"posts_per_page" => 5, </span></span><span> <span>"paged" => 1 </span></span><span> <span>"tax_query" => array( </span></span><span> <span>array( </span></span><span> <span>"taxonomy" => "category", </span></span><span> <span>"field" => "slug", </span></span><span> <span>"terms" => "videos,movies", </span></span><span> <span>) </span></span><span> <span>), </span></span><span> <span>"orderby" => "post_date", </span></span><span> <span>"order" => "DESC", </span></span><span> <span>"exclude" => "1123, 4456", </span></span><span> <span>"meta_key" => "", </span></span><span> <span>"meta_value" => "", </span></span><span> <span>"post_type" => "post", </span></span><span> <span>"post_status" => "publish" </span></span><span><span>); </span></span><span> </span><span><span>$posts_array = get_posts($args); </span></span><span> </span><span><span>?></span></span>
Hier verwenden wir den Parameter "OrderBy", um die Beiträge basierend auf der Anzahl der Kommentare zu sortieren und die Top 10 Beiträge abzurufen.
Sie können auch problemlos zufällige Beiträge abrufen. Dies ist hilfreich, um Benutzern einen weiteren Artikel auf Ihrer Website zu empfehlen, sobald sie das aktuelle gelesen haben. Hier ist der Code dafür:
<span><span><?php </span></span><span> <span>$args = array("posts_per_page" => 10, "orderby" => "comment_count"); </span></span><span> <span>$posts_array = get_posts($args); </span></span><span> <span>foreach($posts_array as $post) </span></span><span> <span>{ </span></span><span> <span>echo "<h1>" . $post->post_title . "</h1><br>"; </span></span><span> <span>echo "<p>" . $post->post_content . "</p><br>"; </span></span><span> <span>} </span></span><span><span>?></span></span>
Im obigen Beispiel haben wir den Wert Rand an den Parameter Order_by übergeben.
Möglicherweise möchten wir alle Beiträge abrufen, die einen bestimmten Metatastatur und Wert zugewiesen haben. Zum Beispiel: Einige Blogs haben einen Rezensent für jeden Artikel. Vielleicht möchten wir Artikel abrufen, die von einem bestimmten Rezensent überprüft werden.
Hier ist der Code, um genau das zu tun:
<span><span><?php </span></span><span> <span>$args = array("posts_per_page" => 1, "orderby" => "rand"); </span></span><span> <span>$posts_array = get_posts($args); </span></span><span> <span>foreach($posts_array as $post) </span></span><span> <span>{ </span></span><span> <span>echo "<h1>" . $post->post_title . "</h1><br>"; </span></span><span> <span>echo "<p>" . $post->post_content . "</p><br>"; </span></span><span> <span>} </span></span><span><span>?></span></span>
Hier rufen wir alle von "NarayanPrusty" überprüften Beiträge ab. Wir gehen davon aus
benutzerdefinierten Beitragstyp mit benutzerdefinierter Taxonomie
<span><span><?php </span></span><span> <span>$args = array("posts_per_page" => -1, "meta_key" => "reviewer", "meta_value" = "narayanprusty"); </span></span><span> <span>$posts_array = get_posts($args); </span></span><span> <span>foreach($posts_array as $post) </span></span><span> <span>{ </span></span><span> <span>echo "<h1>" . $post->post_title . "</h1><br>"; </span></span><span> <span>echo "<p>" . $post->post_content . "</p><br>"; </span></span><span> <span>} </span></span><span><span>?></span></span>In diesem Beispiel rufen wir die Beiträge eines benutzerdefinierten Post -Typs mit dem Namen "Coupons" ab, die zu den benutzerdefinierten Taxonomien "Plugins" und "Themen" gehören.
Schlussfolgerung
häufig gestellte Fragen (FAQs) über WordPress get_posts Funktion
Kann ich Get_Posts verwenden, um benutzerdefinierte Post -Typen abzurufen?
Wie kann ich die zurückgegebenen Beiträge sortieren von get_posts? "OrderBy" bestimmt das Feld, um nach zu sortieren, und "Ordnung" bestimmt die Sortierreihenfolge (ASC für aufsteigend und zum Abstieg). Um beispielsweise Beiträge nach dem Titel in aufsteigender Reihenfolge zu sortieren, würden Sie: get_posts (array ('orderBy' => 'title', 'order' => 'asc');
Wie kann ich Beiträge aus mehreren Kategorien mit Get_Posts abrufen? >
Um Beiträge aus mehreren Kategorien abzurufen, können Sie ein Array von Kategorie -IDs an den Parameter "Kategorie" übergeben. Um beispielsweise Beiträge aus den Kategorien mit den IDs 3 und 4 zu erhalten, würden Sie: get_posts (Array ('Kategorie' => Array (3, 4));Kann ich Get_Posts verwenden, um Beiträge mit einem bestimmten Tag zu abrufen? Sie müssen nur den Parameter "Tag" in Ihrer Abfrage angeben. Um beispielsweise Beiträge mit dem Tag "WordPress" zu erhalten, würden Sie: get_posts (Array ("Tag" => "WordPress");
Das obige ist der detaillierte Inhalt vonErforschen der WordPress Get_Posts -Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!