Heim >CMS-Tutorial >WordDrücken Sie >Erforschen der WordPress Get_Posts -Funktion

Erforschen der WordPress Get_Posts -Funktion

Lisa Kudrow
Lisa KudrowOriginal
2025-02-17 10:17:43471Durchsuche

Erforschen der WordPress Get_Posts -Funktion

Key Takeaways

  • Die Funktion get_posts () in WordPress wird verwendet, um Beiträge aus der Datenbank abzurufen, indem benutzerdefinierte Filter angewendet und das Endergebnis basierend auf einer Reihe von Parametern sortiert werden. Es gibt ein Array von WP_POST -Objekten zurück, die jeweils einen einzelnen Beitrag darstellen.
  • Die Funktion get_posts () wird gegenüber dem Objekt WP_Query bevorzugt, da letztere die Hauptschleife verändert und möglicherweise Site -Probleme verursacht. Die Funktion get_posts () und get_pages () rufen beide Beiträge ab, unterscheiden sich jedoch in Parameternamen, Werten und Methoden des Abrufens.
  • Die Funktion get_posts () akzeptiert ein Array von Parametern, um benutzerdefinierte Filter anzuwenden und Ergebnisse zu sortieren. Diese Parameter umfassen Posts_per_Page, Page, Tax_query, OrderBy, Order, Ausschluss, Meta_Key, Meta_Value, post_type und post_status.
  • Die Funktion get_posts () kann verwendet werden, um die beliebtesten Beiträge, zufälligen Beiträge, Beiträge mit passender Metaschlüssel und Wert und Posts mit einem benutzerdefinierten Post -Typ mit einem benutzerdefinierten Taxonomie -Namen abzurufen. Die zurückgegebenen Ergebnisse werden dann zur weiteren Verwendung durchgeschaltet.

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.

Erforschen der WordPress Get_Posts -Funktion

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.

Was ist die Funktion get_posts ()?

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.

Warum nicht das WP_Query -Objekt direkt verwenden?

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.

Was ist der Unterschied zwischen get_posts () und get_pages () Funktionen?

Beide werden verwendet, um Beiträge aus der WordPress -Datenbank abzurufen. Hier sind jedoch einige der Unterschiede zwischen ihnen:

  • Einige der Parameternamen und -Werte unterscheiden sich zwischen ihnen. Obwohl sie sich unabhängig von den Namen der Parameter genauso verhalten.
  • Die Funktion get_pages () ruft derzeit keine Beiträge basierend auf den Parametern meta_key und meta_value ab.
  • Die Funktion get_pages () verwendet nicht das WP_QUERY -Objekt. Stattdessen konstruiert und führt SQL -Abfragen direkt auf.

Get_Posts () Funktionsparameter

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:

  1. pOSTS_PER_PAGE: Dieser Parameter definiert die Anzahl der zu zurückgegebenen Beiträge. Verwenden Sie -1, wenn Sie alle Beiträge möchten.
  2. PAGED: Ermöglicht es uns, zwischen einer Reihe von Beiträgen zu navigieren, während wir den Parameter posts_per_page verwenden. Es wird zur Paginierung verwendet. Zum Beispiel: Angenommen, die posts_per_page ist 10 und es gibt 20 Beiträge im Ergebnis. Wenn Sie 2 PAGED 2 pagen, werden die letzten 10 Beiträge zurückgegeben.
  3. Tax_Query: Stellen Sie Beiträge einer bestimmten Taxonomie -Schnecke anzeigen, d. H. Filtern Sie die Beiträge der anderen Taxonomie -Schnecke heraus. Begriffe können eine von der Kommas getrennte Zeichenfolge, die mehrere Taxonomie -Slugs darstellt, annehmen.
  4. orderBy: Es wird verwendet, um die abgerufenen Beiträge zu sortieren. Einige mögliche Werte sind: "Keine", "Date", "Rand", "comment_count", "meta_value", "meta_value_num" usw., während Sie mit "meta_value" und "meta_value_num" sortiert werden, müssen Sie den Parameter meta_key bereitstellen.
  5. Reihenfolge: Bezeichnet die aufsteigende oder absteigende Reihenfolge des Parameters "OrderBy". Mögliche Werte sind "Desc" oder "ASC".
  6. Ausschließen: Es erfordert eine von der Kommas getrennte Liste von Post -IDs, die von einer Datenbanksuche ausgeschlossen werden.
  7. meta_key und meta_value: Wenn Sie nur meta_key angeben, werden Beiträge mit dem Schlüssel zurückgegeben. Wenn Sie auch meta_value angeben, werden Beiträge, die mit dem meta_value für den meta_key entsprechen, zurückgegeben.
  8. post_type: Ruft Inhalte basierend auf Post-, Seite oder benutzerdefiniertem Post -Typ ab. Denken Sie daran, dass der Standardpost_Type nur auf Posts eingestellt ist, jedoch nicht auf Seiten.
  9. post_status: Ruft Beiträge nach Status des Beitrags ab. Mögliche Werte sind: "Veröffentlichen", "Ausstehende", "Entwurf", "Zukunft", "Any" oder "Müll".

Das WP_POST -Objekt

Die Funktion get_posts gibt ein Array zurück, das WP_POST -Objekte enthält. Hier sind die wichtigen Eigenschaften des WP_POST -Objekts:

  1. id: id des Beitrags
  2. post_author: Autor Name des Beitrags
  3. post_type: Typ des Beitrags
  4. post_title: Titel des Beitrags
  5. post_date: Datum, auf dem der Beitrag veröffentlicht wurde. Format: 0000-00-00 00:00:00
  6. post_content: Inhalt des Beitrags.
  7. post_status: Status des Beitrags
  8. comment_count: Anzahl der Kommentare für den Beitrag

Beispiele für get_posts

Schauen wir uns einige Beispiele anhand der Funktion get_posts an.

beliebteste Beiträge

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.

zufällige Beiträge

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.

Beiträge mit passender Metaschlüssel und Wert

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

Möglicherweise möchten wir Beiträge von einem benutzerdefinierten Post -Typ mit einem benutzerdefinierten Taxonomie -Namen abrufen. Betrachten Sie dieses Code -Beispiel:

<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

In diesem Artikel haben wir gesehen, wie die Funktion get_posts funktioniert, die verschiedenen Parameter, die sie unterstützt, durch das zurückgegebene Ergebnis und einige Beispielanlagen der Stichprobe durchläuft. Die Funktion get_posts ist eine der am häufigsten verwendeten WordPress -Funktionen. Ich hoffe, Sie können jetzt Ihre eigenen Projekte verwenden.

häufig gestellte Fragen (FAQs) über WordPress get_posts Funktion

Was ist der Unterschied zwischen Get_Posts und WP_Query in WordPress? Sie unterscheiden sich jedoch in ihrer Verwendung und Flexibilität. get_posts ist eine einfachere Funktion, ideal für Anfänger und für Situationen, in denen Sie nur eine bestimmte Reihe von Beiträgen abrufen müssen. Auf der anderen Seite ist WP_Query leistungsfähiger und flexibler. Es ermöglicht komplexere Abfragen und gibt Ihnen mehr Kontrolle über die WordPress -Schleife. Während Get_Posts einfacher zu bedienen ist, bietet WP_Query fortgeschrittenere Funktionen für das Anpassen Ihrer Abfragen.

Wie kann ich die Anzahl der von get_posts zurückgegebenen Beiträge ändern? Standardmäßig wird es auf 5 gesetzt. Wenn Sie alle Beiträge abrufen möchten, können Sie "Numberposts" auf -1 festlegen. Um beispielsweise 10 Beiträge zu erhalten, würden Sie: get_posts (array ('numberPosts' => 10));

Kann ich Get_Posts verwenden, um benutzerdefinierte Post -Typen abzurufen?

Ja, Sie Kann Get_Posts verwenden, um benutzerdefinierte Post -Typen abzurufen. Sie müssen nur den Parameter "post_type" in Ihrer Abfrage angeben. Wenn Sie beispielsweise einen benutzerdefinierten Beitragstyp mit dem Namen "Produkte" haben, können Sie diese Beiträge mit: get_posts (Array ('post_type' => 'products') abrufen;

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

Kann ich Get_Posts verwenden Um Beiträge aus einer bestimmten Kategorie abzurufen? Sie müssen nur den Parameter "Kategorie" in Ihrer Abfrage angeben. Um beispielsweise Beiträge aus der Kategorie mit der ID 3 zu erhalten, würden Sie: get_posts (Array ('Kategorie' => 3));

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 abzurufen Beiträge eines bestimmten Autors? Sie müssen nur den Parameter "Autor" in Ihrer Abfrage angeben. Um beispielsweise Beiträge des Autors mit der ID 1 zu erhalten, würden Sie: get_posts (Array ('Autor' => 1) verwenden; ? Um beispielsweise Beiträge zu erhalten, die einen Meta -Schlüssel mit 'Farbe' und einen Meta -Wert von 'Blue' haben, würden Sie: get_posts (array ('meta_key' => 'color', 'meta_value' => 'Blue') verwenden. );

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

verwenden;

Wie kann ich Beiträge aus einem bestimmten Datumsbereich mit Get_Posts abrufen? Dieser Parameter akzeptiert ein Array von Arrays, wobei jedes innere Array eine Datumsabfrageklausel definiert. Um beispielsweise Beiträge ab Januar 2020 zu erhalten, würden Sie: get_posts (Array (’Date_query’ => Array (Array („Jahr“ => 2020, „Monat“ => 1)));

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn