Beiträge auf einer WordPress-Seite anzeigen. So zeigen Sie aktuelle Beiträge in WordPress an. #4. Neueste Beiträge nach Titel sortiert

Ich habe viele WordPress-Sites gesehen, die eine Art statische Seite auf der Startseite und eine separate Blog-Seite haben, wie zum Beispiel yourwebsite.com/blog.

Wie können Sie dies auf Ihrer eigenen Website umsetzen? Tatsächlich gibt es zwei Möglichkeiten – eine einfache und eine nicht so einfache, schauen wir uns beide an.

Methode 1: Verwendung von index.php als Blog-Vorlage.

Dies ist die Standardmethode, die in WordPress bereitgestellt wird. Höchstwahrscheinlich wird dies auf den Websites verwendet, über die ich gleich zu Beginn des Beitrags gesprochen habe. Schauen wir es uns Schritt für Schritt an.

Da der Inhalt der Datei index.php übrigens in verschiedenen Themes unterschiedlich ist, ist sie möglicherweise überhaupt nicht für einen Blog gedacht. In solchen Fällen ändern wir entweder unsere index.php selbst oder verwenden die zweite Methode, die ich beschrieben habe unten.

Schritt 1: Erstellen Sie eine Blog-Seite.

Nun, was soll ich sagen, lasst uns weitermachen Seiten > Neu hinzufügen, Wir geben einen Titel, zum Beispiel Blog, und eine URL, zum Beispiel Blog, an und speichern ihn dann. Das war's, Schritt 1 ist erledigt.

Schritt 2. Konfigurieren Sie die Anzeige der Seiten in den Einstellungen.

Lass uns gehen Einstellungen > Lesen Wir konfigurieren die Anzeige der gewünschten Seite auf der Hauptseite und legen für die Beitragsseite die im vorherigen Schritt erstellte Seite fest.

Schritt 3. Letzter Schritt. Hinzufügen einer Seite zum Menü.

Wenn Sie nach Abschluss des zweiten Schritts zur Blog-Adresse gehen (für uns ist es yourwebsite.com/blog), sehen Sie eine Seite mit Beiträgen, die die Dateivorlage index.php verwenden.

Sie können diese Seite jedoch auch zum Site-Menü hinzufügen (sofern dies natürlich vom Theme unterstützt wird). Gehen Sie dazu zu Aussehen > Menü Wählen Sie in der linken Spalte unsere Blogseite aus und klicken Sie auf die Schaltfläche „Zum Menü hinzufügen“.

Methode 2: Verwenden Sie Ihre eigene Blog-Vorlage. Erstellen mehrerer Blogs auf einer WordPress-Site.

Mit dieser Methode können Sie Blogseiten mit Ihrer eigenen Vorlage erstellen. Diese Methode eignet sich hervorragend, wenn Sie die Anzeigeeinstellungen Ihrer Beiträge ändern müssen. Sie können verschiedene Seiten mit unterschiedlichen Ausgabeoptionen erstellen.

Es sind etwas mehr Schritte erforderlich und diese sind etwas schwieriger als bei der vorherigen Methode. So lass uns gehen.

Schritt 1: Erstellen Sie eine Seitenvorlage

Öffnen Sie den Ordner mit dem Theme und erstellen Sie dort eine Datei mit einem beliebigen Namen, zum Beispiel blog-template.php. In die Datei einfügen:

Schritt 2. Erstellen Sie eine Blog-Seite

Dieser Schritt ähnelt dem ersten Schritt vom Anfang des Beitrags. Also lasst uns gehen Seiten > Neu hinzufügen, Wir legen einen Namen und eine URL für die Seite fest und geben unter anderem in den Seitenattributen die Vorlage an, die wir gerade erstellt haben.

Speichern.

Schritt 3. Seitennavigations-Plugin

Es ist klar, dass wir eine Seitennavigation benötigen werden. Höchstwahrscheinlich nutzen Sie bereits ein Plugin oder eine Navigationsfunktion. Wenn die Navigation nicht funktioniert, empfehle ich die Einstellung WP_PageNavi— Dieses Plugin funktioniert großartig, ich habe es getestet, alles ist in Ordnung.

Schritt 4: Blog-Seitenvorlage

Dies ist eine reine Blog-Vorlage ohne so wichtige Funktionen wie get_header() . get_footer() Und andere Dinge. Es ist einfach wichtig, das Wesentliche im Moment zu verstehen.

/* * Vorlagenname: Blog */$current_page = (get_query_var("paged" ) ) ? get_query_var("paged" ): 1 ; // Bestimmen Sie die aktuelle Blogseite$args = array ( "posts_per_page" => get_option( "posts_per_page" ), // Der Standardwert wird aus den Einstellungen übernommen, Sie können jedoch Ihren eigenen verwenden"paged" => $current_page // aktuelle Seite); query_posts( $args ); $wp_query ->is_archive = true ; $wp_query ->is_home = false ; while (have_posts() ): the_post() ; ?>

/* Inhalt posten */ ?>

// Seitennavigationsfunktion

Damit ist die Blog-Seite erstellt. Sie können somit verschiedene Blog-Seiten mit unterschiedlichen $args-Array-Parametern erstellen. Vollständige Liste der Parameter

Wir haben eine separate Vorlagendatei zum Anzeigen von Beiträgen auf WordPress – single.php. Hierbei handelt es sich jedoch um die Ausgabe eines einzelnen Datensatzes innerhalb einer Schleife, die durch die Funktionen der freien Engine bestimmt wird und keine Komplexität erzeugt. Aber So zeigen Sie WordPress-Beiträge an auf einer anderen Seite oder auf der Hauptseite?


get_posts()

In diesem Fall benötigen wir die Funktion get_posts(). Mit seiner Hilfe können wir auf alle Beiträge nach den von uns benötigten Kriterien zugreifen. Diese Methode hat viele Vorteile, einer davon ist die Möglichkeit, Beiträge nach Datum, Titel, ID usw. zu sortieren. Die Liste aller Argumente ist ziemlich umfangreich, Sie können sie im WordPress-Code anzeigen, aber wir werden uns das ansehen ein direktes Beispiel für nur das Nötigste, was zur Ausführung der zugewiesenen Aufgabe erforderlich ist.

Also das Prinzip der Funktion:

$posts = get_posts($args);

Wie Sie wissen, legen wir in der Variablen $args alle notwendigen Parameter für die Anzeige unserer Beiträge fest. In der Variable „posts“ erhalten wir ein Datenarray, das zur Ausgabe in einer Schleife bereitsteht. Vergessen Sie nach Abschluss der Schleife nicht, die Funktion wp_reset_postdata() zu verwenden, damit wir Fehler auf der Seite mit zusätzlichen Schleifen im Zusammenhang mit der Anzeige von Beiträgen vermeiden können. Unser Code wird so aussehen:

9 , „category“ => 1, „orderby“ => „date“); $myposts = get_posts($args); foreach($myposts as $post)( setup_postdata($post); ?>

">

Dabei handelt es sich um einen komplett vorgefertigten Code zum Einfügen an der gewünschten Stelle in Ihrer Theme-Vorlage. Lassen Sie mich die vorgebrachten Argumente kurz erläutern. Im Parameter „numberposts“ legen wir die Anzahl der anzuzeigenden Beiträge fest, in „category“ geben wir die Kategorie-ID an und „orderby“ ist für die Sortierung nach Datum zuständig.

Die Schleife verwendet bereits eine reguläre Vorlage, die eine Miniaturansicht, einen Beitragslink, einen Titel und ein Veröffentlichungsdatum anzeigt. Wie Sie sehen, ist alles ganz einfach, jetzt können Sie WordPress-Beiträge überall in Ihrem Theme anzeigen.

Hallo liebe Leser des WP Developer Blogs. Im Artikel „“ habe ich Ihnen erklärt, was es ist, ein Beispiel für Standard-Beitragstypen gegeben und den Prozess ihrer Erstellung beschrieben. Aber der Schöpfungsprozess selbst ist nicht endgültig, denn... Die Aufzeichnungen müssen dann irgendwie auf der Website angezeigt werden. Gerade in diesem Artikel möchte ich Ihnen zwei Möglichkeiten zeigen, ein Archiv solcher Artikel anzuzeigen (ohne Paginierung und mit Paginierung) und Ihnen zeigen, wie Sie einen separaten beliebigen Eintrag anzeigen können. Ich werde alle Manipulationen im Standard-WordPress-Theme durchführen – twentyseventeen. So lass uns gehen.

Alle Beiträge auf einer Seite anzeigen (ohne Paginierung)

Manchmal müssen Sie ein Archiv eines benutzerdefinierten Beitragstyps auf einer Seite anzeigen. Nun, man weiß nie, welche Anforderungen der Kunde haben könnte. Plötzlich braucht er genau eine solche Ausgabemöglichkeit. Ich habe zum Beispiel einen neuen Beitragstyp „Bewertungen“ mit der Bezeichnung „Bewertungen“ erstellt. Ich werde den Prozess selbst nicht beschreiben. Klicken Sie dazu auf den Link, in dem alles ausführlich beschrieben ist. Ich werde nur visuell zeigen, wie es im Menü aussieht (siehe Bild):

Im nächsten Schritt müssen Sie im Ordner mit Ihrem Theme eine separate Vorlage für die Ausgabe des Archivs erstellen. Ich habe es reviews.php genannt. In diese Vorlage schreiben wir den folgenden Kommentar:

Nachdem jemand diesen Kommentar gesehen hat, hat vielleicht schon jemand erraten, was wir erstellen. Ja, das ist richtig. Ich habe außerdem den folgenden Code hinzugefügt, um die Bewertungen selbst zu empfangen und anzuzeigen:

"reviews", "posts_per_page" => -1)); ?>

have_posts()) : while ($reviews->have_posts()) : $reviews->the_post(); ?>

">

Ich werde kein Styling durchführen, da es für uns wichtig ist, den Prozess selbst zu verstehen und nicht das Erscheinungsbild der Seite zu sehen.

Bereit. Fügen Sie nun die Seite „Bewertungen“ zum Menü hinzu, gehen Sie darauf und Sie können die gesamte Liste der hinzugefügten Bewertungen sehen.

Beiträge als Kategorie anzeigen (mit Paginierung)

Wenn Sie eine Liste eines benutzerdefinierten Beitragstyps mit Paginierung anzeigen müssen, d. h. Wenn eine der Kategorien angezeigt wird, müssen Sie lediglich eine neue Datei mit dem folgenden Namen zum Ordner mit Ihrem Thema hinzufügen – archive-(identifier_of_arbitrary_post_type).php . In meinem Fall heißt diese Datei archive-reviews.php. Als nächstes fügen Sie der Datei eine Ausgabeschleife hinzu (ohne den Kommentar „Vorlagenname: Bewertungen“) und die Beiträge werden als Kategorien ausgegeben – mit Paginierung. Der Code könnte so aussehen:

have_posts()) : while ($reviews->have_posts()) : $reviews->the_post(); ?>

">

Wie Sie bemerkt haben, erhalten wir keine Beiträge mehr mit der Klasse WP_Query, dies ist nicht notwendig. WordPress selbst erkennt, zu welcher Art von Beiträgen diese Vorlage gehört, und zeigt diese genau an.

Wenn Sie nun auf diesen Link klicken, wird möglicherweise eine Meldung wie diese angezeigt: „ Leider wurde die von Ihnen angeforderte Seite nicht gefunden". Dieses Problem kann auf relativ einfache Weise gelöst werden. Sie müssen zum Abschnitt „Einstellungen“ > „Permalinks“ gehen und auf die Schaltfläche „Speichern“ klicken, ohne etwas zu ändern.

Anzeige eines einzelnen Datensatzes eines beliebigen Typs

Wir haben also herausgefunden, wie Sie ein Archiv eines benutzerdefinierten Beitragstyps mit und ohne Paginierung anzeigen können. Jetzt müssen wir nur noch einen separaten Beitrag anzeigen. Wenn Sie mit dem Erscheinungsbild der Seite, die derzeit einen separaten Beitrag anzeigt, zufrieden sind, müssen Sie im Prinzip nichts erstellen, dies übernimmt die Datei single.php. Wenn Sie das Erscheinungsbild eines neuen Beitragstyps ändern möchten, beispielsweise die Seitenleiste entfernen oder die Seite anders gestalten möchten, müssen Sie eine Datei mit dem folgenden Namen erstellen – single-(identifier_of_post_type).php , und Schreiben Sie darin den Code zum Anzeigen des Beitrags mit den erforderlichen Stilen. In meinem Fall wird es so heißen: single-reviews.php.

Das ist alles. Ich hoffe, der Artikel war für Sie nützlich. Allen viel Glück!!!

Hallo zusammen, liebe Freunde! Max Metelev spricht offen mit Ihnen, erzählt es Ihnen und zeigt es Ihnen in der Praxis.

Und heute, als Snack für Sie am Morgen, eine Portion nützliches Material mit folgendem Inhalt – wir lernen, wie man eine Liste von WordPress-Seiten mit Bildern anzeigt. Die Lektion ist sehr einfach und interessant. Gehen.

Die meisten Websites verwenden Seiten hauptsächlich für Textinhalte. Da sich Seiten von Beiträgen unterscheiden, benötigen Sie möglicherweise Möglichkeiten, sie anzuzeigen.

Zusätzlich zur Hauptmethode der Anzeige von WordPress-Seiten mit Miniaturansichten zeigen wir, wie untergeordnete und übergeordnete Seiten angezeigt werden.

Es wird ungefähr so ​​aussehen:

Als Erstes müssen Sie das Seitenlisten-Plugin installieren und aktivieren. Es funktioniert sofort nach dem Auspacken, daher gehen wir nicht auf die Einstellungen ein, da diese nicht vorhanden sind.

Dieses Plugin enthält eine Liste von Shortcodes mit einer umfangreichen Liste von Optionen. Beginnen wir mit der einfachen Anzeige aller Seiten der Site, also mit der Erstellung einer regulären Karte

Erstellen Sie eine neue Seite in WordPress und fügen Sie den folgenden Shortcode hinzu [Seitenliste]

Dieser Shortcode zeigt eine einfache Verschachtelung aller Ihrer Seiten.

Sie können entweder dieses oder eine Reihe anderer Text-Widgets verwenden. Wenn sie auf Ihrer Site nicht funktionieren, müssen Sie sie verbinden, indem Sie eine Zeile in der Datei hinzufügen Funktionen. php Ihr Theme oder auf einen bestimmten Bereich des Plugins.

add_filter("widget_text","do_shortcode");

add_filter ("widget_text" , "do_shortcode" );

Untergeordnete Seiten auf übergeordneten Seiten in WordPress anzeigen

Sie müssen lediglich den gewünschten Shortcode hinzufügen [Unterseiten] zur übergeordneten Seite.

Sie können Shortcodes auch zum Einfügen in Text-Widgets verwenden.

Verwandte Seiten zu WordPress hinzufügen

Verwandte Seiten sind im Wesentlichen untergeordnete Seiten, die dasselbe übergeordnete Element haben. Die Ausgabe solcher WordPress-Seiten erfolgt über den folgenden Aufbau [geschwister]

Seiten mit Vorschauen und Textauszügen anzeigen

Das Seitenlisten-Plugin enthält den folgenden Code [page_ext]. Dieser Einbettungscode bietet erweiterte Optionen für die Anzeige von Seitenlisten in WordPress.

Sie können damit die Struktur von Seiten mit einem repräsentativen Bild des Artikels und einem kleinen Textauszug daraus anzeigen. Wie hier:

[ pagelist_ext show_image = "1" image_width = "50" ]

Die Bildgröße können Sie über den Parameter selbst festlegen Bild breite

Über den Parameter können Sie auch die Länge der Textpassage steuern limit_content

Sie können beispielsweise 100 Zeichen festlegen [pagelist_ext limit_content = "100" ]

Wenn Sie keinen Text neben der Miniaturansicht des Artikels anzeigen möchten, verwenden Sie den folgenden Shortcode für die Seite [pagelist_ext show_content = "0" ]

Vielen Dank für Ihre Aufmerksamkeit und viel Spaß beim Lernen!

Ein Artikel für Anfänger und diejenigen, die sich bereits ein wenig mit WordPress auskennen, der alle Mythen über die Verwendung verschiedener Loop-Optionen in WordPress entlarven soll.

Über den WordPress-Loop und seine Verwendung habe ich bereits geschrieben und in den Funktionsbeschreibungen kurz verschiedene Möglichkeiten für Loops erwähnt. In diesem Artikel gehe ich den nächsten Schritt und spreche über drei Optionen zum Erstellen von Schleifen zum Anzeigen von Datensätzen sowie über die Vor- und Nachteile jeder dieser Optionen.

Durch die korrekte Verwendung mehrerer Schleifen auf einer Seite haben Sie die Möglichkeit, Blöcke mit den erforderlichen Datensätzen anzuzeigen, sie in der richtigen Reihenfolge zu sortieren und müssen sich keine Sorgen machen, dass die logische Struktur der Seite verletzt und verschiedene Fehler „abgefangen“ werden.

WordPress-Entwickler bieten die folgenden Optionen zum Erstellen von Post-Output-Zyklen:

  1. Standardschleife und schleifenbasierte query_posts() ;
  2. WP_Query() ;
  3. Zusätzliche Schleife basierend auf get_posts() .

Jede dieser Optionen ist in verschiedenen Situationen praktisch zu verwenden. Um jede Option nutzen zu können, müssen Sie kein anderes Handbuch studieren, da alle mit den gleichen Parametern arbeiten. Sie müssen lediglich verstehen, wie und wo sie verwendet werden.

Für ein besseres Verständnis und eine visuelle Wahrnehmung der Funktionsweise von Abfragefunktionen sehen Sie sich dieses Diagramm an:

1) Standardschleife und Schleife basierend auf query_posts()

Ich habe zwei Arten von Schleifen kombiniert (mit query_posts() und eine, die mit if(have_posts()) beginnt, weil sie technisch gesehen genau gleich sind.

Erinnern wir uns daran, wie es aussieht Standard-WordPress-Schleife:

id="post-">

">

Es gibt keine Einträge.";

Wir können solchen Code in den Dateien index.php, Category.php usw. finden. Diese Dateien sind für die Anzeige einer Liste von Datensätzen auf der Seite verantwortlich. Diese Schleife durchläuft die auf der Seite angezeigten Beiträge nacheinander und während der Iteration können wir mithilfe von Template-Tags (zur Verwendung innerhalb der Schleife) verschiedene Beitragsdaten (Titel, Text, Metadaten usw.) ausgeben.

Bitte beachten Sie: In einer Standardschleife geben wir keine Daten für die Auswahl von Beiträgen an, sondern starten die Schleife sofort mit if(have_posts())( while(have_posts())(… Dies zeigt an, dass die Daten bereits vorhanden sind und nur noch vorhanden sein müssen verarbeitet und auf dem Bildschirm angezeigt.

„Bereits vorhandene“ Daten werden in der globalen Variablen $wp_query gespeichert und automatisch für jeden WordPress-Seitentyp ermittelt, d. h. WordPress führt vorab eine Abfrage an die Datenbank durch, basierend darauf, welcher Seitentyp gerade angezeigt wird (Kategorie, Tag, Artikel, permanente Seite usw.) und das Abfrageergebnis wird in $wp_query geschrieben und dann von dort in einer Schleife ausgegeben. Interessanterweise wird eine solche Anfrage von der Funktion query_posts() gestellt, auf die wir weiter unten eingehen werden.

Der reguläre WordPress-Loop wird für grundlegende WP-Seiten (Kategorien, Tags, Archive nach Datum) verwendet.

Schleife basierend auf query_posts()

Mit query_posts() können Sie die Basisabfrage ändern und die Version der benötigten Beiträge anzeigen.

Variante 1

Wir können die Basisabfrage ändern (eine weitere Abfrage durchführen und die Daten der vorherigen Abfrage überschreiben) und beispielsweise unnötige Kategorien aus der Ausgabe entfernen oder die Anzahl der Ausgabedatensätze, die Sortierreihenfolge usw. ändern.

In diesem Beispiel haben wir eine neue Abfrage an die Datenbank erstellt, in der wir die Parameter der Basisabfrage + unsere eigenen Parameter verwendet haben: Wir haben die Kategorien 6 und 9 (cat=-6,-9) ausgeschlossen und die Datensätze auch nach sortiert Reihenfolge (order=ASC) und zeigte 20 Datensätze auf der Seite anstelle der in Einstellungen 10 (posts_per_page=20) festgelegten Datensätze an. Eine vollständige Liste der Parameter, die zum Generieren der benötigten Ausgabe verwendet werden können, finden Sie in der Beschreibung der Funktion query_posts().

Der Vorteil dieser Änderung besteht darin, dass, wenn wir beispielsweise die Anzahl der auf einer Seite angezeigten Beiträge von 10 (Standard) auf 20 ändern, sich die Paginierung auf der Seite automatisch an diese Änderung anpasst, da query_post() die Daten ändert in der globalen Variablen $wp_query und die Paginierung wird genau auf Basis dieser Daten erstellt. Dies ist nur ein Beispiel, das zeigt, dass query_posts() und das Verhalten anderer Funktionen auf der Seite miteinander verbunden sind.

Option 2

Sie können die Basisabfrageparameter ($query_string) nicht verwenden, sondern die Basisabfrage komplett neu schreiben:

Query_posts("cat=-6,-9&order=ASC");

Bei diesem Ansatz wird jedoch im Wesentlichen die Basisabfrage gelöscht und eine neue erstellt, die möglicherweise falsch zusammengesetzt ist. Daher müssen Sie die Basisabfrage sorgfältig und mit Sachkenntnis vollständig neu schreiben.

Die Notwendigkeit von wp_reset_query()

Bei der Verwendung von query_posts() ist es notwendig, eine geänderte Abfrage zurückzusetzen, da query_posts() die globale Variable $wp_query überschreibt, die für einige Seiteneigenschaften verantwortlich ist. Schauen wir uns ein Beispiel an.

Angenommen, wir befinden uns auf der Seite der Kategorie 6 (Kategorie-ID), wir müssen nur die Daten von Beitrag 9 (Beitrags-ID) anzeigen:

In diesem Beispiel haben wir die Abfrage nicht zurückgesetzt und die Funktion query_posts() hat die globale Variable $wp_query überschrieben. Wenn wir nun überprüfen, um welche Seite es sich handelt (und dies ist eine Kategorieseite: is_category() == true), werden wir feststellen, dass es sich überhaupt nicht um eine Kategorieseite, sondern um eine Beitragsseite handelt: is_single() == true . Diese. Der folgende Code gibt „Dies ist eine Beitragsseite“ zurück, obwohl es sich tatsächlich um eine Kategorieseite handelt:

If(is_category()) echo „Dies ist eine Kategorieseite“; // funktioniert nicht if(is_single()) echo "Dies ist eine Beitragsseite"; // wird funktionieren

Ein Fehler, der später viel Kopfzerbrechen bereiten kann.

Wann sollte query_posts() verwendet werden?

Wenn Sie die wichtigste (grundlegende) WordPress-Abfrage geringfügig ändern müssen. Idealerweise: um eine Kategorie/ein Tag auszuschließen (z. B. auf der Hauptseite); Ändern der Sortierrichtung; Begrenzung der Anzahl der angezeigten Beiträge; Ausschließen bestimmter Beiträge aus Kategorien/Tags usw.

Keine Notwendigkeit, query_posts() zu verwenden Um mehrere Schleifen auf einer Seite zu erstellen, eine Liste von Beiträgen in der Seitenleiste anzuzeigen, eine zusätzliche Anzeige von Beiträgen zu erstellen usw., verwenden Sie für diese Zwecke Schleifen basierend auf get_posts(). Außerdem verstehen beide Funktionen Parameter auf die gleiche Weise! Warum also mehr „bezahlen“?

2) Schleife basierend auf WP_Query()

Um Beiträge anzuzeigen, die nichts mit der Seite zu tun haben, oder mehrere (zusätzliche) Schleifen zu erstellen, können Sie Schleifen verwenden, die auf der Klasse WP_Query basieren. Sie ähneln Schleifen, die query_posts() verwenden. WP_Query verwendet dieselben Parameter wie query_posts().

Interessanterweise ist WP_Query der Kern der Funktionen query_posts() und get_posts(), d. h. Beide Funktionen basieren auf dieser Klasse.

Beispiel einer Schleife: Alle Datensätze aus Kategorie 9 anzeigen:

have_posts())( while($query->have_posts())( $query->the_post(); ?>

">

Beispiel für die Erstellung mehrerer Schleifen basierend auf WP_Query():

have_posts())( $query1->the_post(); // Beiträge anzeigen ) wp_reset_postdata(); // Schleife 2 $query2 = new WP_Query("cat=-2&nopaging=1"); // alle Beiträge außer Kategorie 2 while($query2->have_posts())( $query2->the_post(); // Beiträge anzeigen ) wp_reset_postdata(); // Schleife 3 $query3 = new WP_Query("cat=-3&nopaging=1"); // alle Beiträge außer Kategorie 3 while($query3->have_posts())( $query3->the_post(); // Beiträge anzeigen ) wp_reset_postdata(); ?>

Die Besonderheit von Schleifen auf WP_Query() besteht darin, dass wir ein neues $query-Objekt erstellen, das in keiner Weise mit dem ähnlichen globalen $wp_query-Objekt verbunden ist und wir daher in keiner Weise die Struktur der aktuellen Seite verletzen.

Wir können das neue Objekt auch für andere Zwecke verwenden, nicht nur zum Anzeigen von Datensätzen, sondern auch für verschiedene Arten von Prüfungen: zum Beispiel, welche Art von Seitendatensätzen in diesem neuen Objekt verwendet werden; Wir können die Gesamtzahl der Beiträge ermitteln, die der Anfrage entsprechen ($query->found_posts) usw. Solche Daten können beim Erstellen zusätzlicher Abfragen mit Paginierung oder anderswo nützlich sein (Beispiel in den Kommentaren).

Warum wp_reset_postdata() verwenden?

Die globale Variable $post speichert die Daten des aktuellen Beitrags (wenn die Beitragsseite angezeigt wird, dann die Daten dieses Beitrags). Wenn der Teil $query->the_post() des Codes ausgelöst wird, werden die Daten des aktuellen Beitrags in der Schleife in die Variable $post geschrieben und am Ende der Schleife bleiben die Daten des letzten Beitrags aus dieser Schleife erhalten in dieser Variablen, $post sollte jedoch immer die Daten des aktuellen Beitrags der Seite enthalten. Diese. Es stellt sich heraus, dass vor der Verwendung des Zyklus $post->ID (ID des aktuellen Beitrags) beispielsweise gleich 10 war und nach dem Auslösen des Zyklus dieselbe Variable $post->ID bereits beispielsweise gleich war 56 (ID des letzten Beitrags aus dem Zyklus) und muss immer noch gleich 10 sein.

#1. Ein Beispiel für eine Schleife basierend auf get_posts(). Lassen Sie uns 5 Einträge aus Kategorie 9 anzeigen:

9)); foreach($myposts as $post)( setup_postdata($post); // Standard-Post-Ausgabe ) wp_reset_postdata(); // die $post-Variable zurücksetzen?>

Der Code gibt genau 5 Einträge aus, obwohl wir in den Argumenten nur die Kategorienummer angegeben haben. Dies liegt daran, dass die Funktion get_posts() über Standardparameter verfügt (siehe Beschreibung), die Sie sich merken müssen. Wenn wir beispielsweise alle Beiträge der Kategorie 9 anzeigen müssen, müssen wir den Parameter „nopaging“ => 1 oder „posts_per_page“ => -1 hinzufügen (es gibt keinen Unterschied).

Wann sollte get_posts() verwendet werden?

Immer dann, wenn Sie lediglich Datensätze aus der Datenbank an einer beliebigen Stelle in der Vorlage anzeigen müssen. Wenn Sie mehrere Zyklen erstellen müssen. Da get_posts() dieselben Parameter wie query_posts() verwendet, ist es sehr praktisch, Beiträge basierend auf verschiedenen Kriterien anzuzeigen.

Schlussfolgerungen

Wo und welche der 3 Zyklusoptionen nutzen:

    query_posts() – wenn Sie die Standardausgabe von Beiträgen auf WordPress-Seiten ändern/optimieren müssen. Kann einmal pro Seite verwendet werden;

    get_posts() – wenn Sie Beiträge aus der Datenbank anzeigen müssen. Kann beliebig oft auf einer Seite verwendet werden;

  • WP_Query() – in allen anderen Fällen, wenn query_posts() und get_posts() nicht funktionierten. Die Klasse WP_Query() ist der Kern von query_posts() und get_posts() und kann für beliebige komplexe Ausgabefälle verwendet werden.

Denken Sie daran, dass die Parameter für alle Optionen gleich sind und