WP_Query-Argumente Autor, Suche, Kennwort und Berechtigungen

Bisher haben Sie in dieser Serie etwas über eine Auswahl von Argumenten erfahren, die Sie mit verwenden können WP_Query Klasse, um Beiträge nach Beitragstyp, Kategorie, Tag, Metadaten, Datum, Status und vielem mehr auszuwählen.

In diesem abschließenden Tutorial auf WP_Query Argumente, ich werde einige weniger häufig verwendete Parameter durchlaufen, die Ihren Abfragen noch mehr Flexibilität geben.

Die Parameter, die wir hier behandeln werden, sind für:

  • Autor
  • Suche
  • Passwort
  • Berechtigungen
  • Caching
  • Rückgabefelder

Bevor wir beginnen, lassen Sie uns kurz beschreiben, wie Sie Ihre Argumente mit codieren WP_Query.

Eine Zusammenfassung der Funktionsweise von Argumenten in WP_Query

Wenn du codierst WP_Query In Ihren Designs oder Plugins müssen Sie vier Hauptelemente einfügen:

  • Die Argumente für die Abfrage verwenden Parameter, die in diesem Lernprogramm behandelt werden
  • die Abfrage selbst
  • die Schleife
  • Fertigstellung: Schließen von Tags und Tags und Zurücksetzen der Post-Daten

In der Praxis sieht das ungefähr so ​​aus:

have_posts ()) // Beginne, die Abfrageergebnisse zu durchlaufen. while ($ query-> have_posts ()) $ query-> the_post (); // Inhalt der abgefragten Post-Ergebnisse finden Sie hier.  // Stellen Sie die ursprünglichen Postdaten wieder her. wp_reset_postdata (); ?>

Die Argumente sagen WordPress, welche Daten aus der Datenbank abgerufen werden sollen. Diese werden hier behandelt. Wir konzentrieren uns hier also nur auf den ersten Teil des Codes:

$ args = array (// Argumente für Ihre Abfrage.);

Wie Sie sehen, sind die Argumente in einem Array enthalten. Sie lernen, wie Sie diese codieren, während Sie dieses Tutorial durcharbeiten.

Kodierung Ihrer Argumente

Es gibt eine bestimmte Methode zum Codieren der Argumente im Array, die wie folgt lautet:

$ args = array ('parameter1' => 'value', 'parameter2' => 'value', 'parameter3' => 'value');

Sie müssen die Parameter und deren Werte in einfache Anführungszeichen setzen, verwenden => zwischen ihnen und trennen Sie sie mit einem Komma. Wenn Sie dies falsch verstehen, fügt WordPress möglicherweise nicht alle Ihre Argumente der Abfrage hinzu, oder Sie erhalten einen weißen Bildschirm.

Autorenparameter

Es gibt vier Parameter, die Sie zur Abfrage nach Autor verwenden können:

  • Autor (int): Verwenden Sie die ID des Autors
  • Autorenname (Schnur): benutze 'user_nicename' (NICHT name)
  • author__in (Array): Verwenden Sie die ID des Autors
  • author__not_in (Array)

Der erste, Autor, können Sie Beiträge von einem oder mehreren Autoren abfragen, indem Sie die ID des Autors angeben:

$ args = array ('author' => '2');

Der obige Code fragt alle Beiträge des Autors ab, deren ID lautet 2.

Sie können auch eine Zeichenfolge verwenden, um Beiträge von mehreren Autoren abzufragen:

$ args = array ('author' => '1, 2');

Wenn Sie nach Name abfragen möchten, verwenden Sie die Autorenname Parameter:

$ args = array ('author_name' => 'rachelmccollin'); 

Dieser Parameter übernimmt den Wert aus der benutzername_name Feld in der Datenbank als Argument, das als Spitzname auf dem Benutzeradministrationsbildschirm angezeigt wird:

Beachten Sie, dass die Verwendung von das sicherer ist, da dies von Benutzern bearbeitet werden kann Autor Parameter, wenn Sie glauben, dass Ihre Benutzer dies ändern könnten.

Sie können auch nach Beiträgen nach einem Array von Autoren suchen:

$ args = array ('author__in' => array ('1', '2'));

Im obigen Abschnitt werden Beiträge von zwei Autoren abgefragt: mit ID 1 und 2, Sie erhalten dieselben Ergebnisse wie die Zeichenfolge, die ich mit der Autor Parameter oben.

Schließlich können Sie Beiträge von einem oder mehreren Autoren mit der Option ausschließen author__not_in Parameter. Das folgende Argument fragt nach allen Beiträgen außer den nach Autor 1:

$ args = array ('author__not_in' => array ('1'));

Oder Sie können mehrere Autoren ausschließen:

$ args = array ('author__not_in' => array ('1', '2'));

Alternativ können Sie das verwenden Autor Parameter und verwenden Sie ein Minuszeichen vor der Autor-ID, um einen Autor auszuschließen:

$ args = array ('author' => '-2'); 

Suchparameter

Es gibt nur einen Parameter für die Suche s. Verwenden Sie diese Option, um nach Beiträgen zu suchen, die einem Suchbegriff entsprechen. Um beispielsweise nach Beiträgen mit den Schlüsselwörtern "Mein Lieblingsessen" abzufragen, verwenden Sie Folgendes:

$ args = array ('s' => 'mein Lieblingsessen');

Dies kann nützlich sein, um beispielsweise nach ähnlichen Beiträgen mit ähnlichen Suchbegriffen zu suchen.

Kennwortparameter

Sie können die beiden Kennwortparameter verwenden, um Beiträge mit und ohne Kennwortschutz abzufragen:

  • has_password (bool)
  • post_password (Schnur)

Der erste Parameter, has_password, können Sie nach Beiträgen mit oder ohne Kennwortschutz suchen. So fragen Sie nach Beiträgen, die durch ein Passwort geschützt sind:

$ args = array ('has_password' => true);

Und für Beiträge, die kein Passwort haben:

$ args = array ('has_password' => false);

Sie können auch das Kennwort selbst abfragen post_password Parameter:

$ args = array ('post_password' => 'mypassword');

Berechtigungsparameter

Für Berechtigungen steht nur ein Parameter zur Verfügung, Dauerwelle, die Sie verwenden, um Beiträge abzufragen, für die der aktuelle Benutzer Leserechte besitzt. Es braucht die 'lesbar' Wert und soll mit anderen Argumenten kombiniert werden.

Um kennwortgeschützte Beiträge abzufragen und sie nur anzuzeigen, wenn der Benutzer über die entsprechenden Berechtigungen verfügt, verwenden Sie Folgendes:

$ args = array ('has_password' => true, 'perm' => 'lesbar');

Oder um Entwürfe anzuzeigen, wenn der aktuelle Benutzer die Berechtigung hat, sie anzuzeigen, verwenden Sie Folgendes:

$ args = array ('post_status' => 'draft', 'perm' => 'lesbar');

Caching-Parameter

Es gibt drei Caching-Parameter, die verhindern, dass die von der Abfrage abgerufenen Daten zum Cache hinzugefügt werden:

  • cache_results (boolean): Cache nach Informationen
  • update_post_meta_cache (boolean): post meta information cache
  • update_post_term_cache (boolean): Post-Term-Information-Cache

Der Standardwert aller drei ist wahr: Sie müssen sie nicht verwenden, wenn die Daten zum Cache hinzugefügt werden sollen.

Also alle Beiträge der anzeigen Produkt Post-Typ, aber keine Post-Informationen zum Cache hinzufügen, verwenden Sie Folgendes:

$ args = array ('post_type' => 'product', 'cache_results' => false);

Normalerweise sollten Sie diese Parameter nicht verwenden, da es sich als üblich erweist, Postdaten zum Cache hinzuzufügen. Manchmal möchten Sie jedoch möglicherweise Beiträge abrufen, sodass Sie nur einige der Postdaten verwenden können. In diesem Fall benötigen Sie die restlichen Postdaten nicht im Cache. Ein Beispiel könnte sein, wenn Sie einfach eine Liste mit Posttiteln mit Links ausgeben möchten. In diesem Fall müssen Sie keine Posttermdaten oder Metadaten zum Cache hinzufügen:

$ args = array ('post_type' => 'product', 'update_post_meta_cache' => false, 'update_post_term_cache' => false);

Parameter zurückgeben

Du kannst den ... benutzen Felder Parameter, um anzugeben, welche Felder von Ihrer Abfrage zurückgegeben werden sollen. Dadurch können zurückgegebene Daten aus Feldern in der Datenbank gespeichert werden, die Sie nicht zur Ausgabe der Daten in Ihrer Schleife benötigen.

Standardmäßig werden alle Felder zurückgegeben. Mit der Option haben Sie zwei Optionen Felder Parameter, um dies einzuschränken. Zuerst die 'ids' Streit:

$ args = array ('fields' => 'ids');

Dies würde nur ein Array von Post-IDs und keine anderen Felder zurückgeben. Wenn Sie etwas in Ihrer Schleife ausgeben möchten (z. B. den Beitragstitel), müssen Sie Funktionen wie verwenden get_the_title ($ post-> ID); den Titel auszugeben, was ein langwieriger Weg wäre, Dinge zu erledigen.

Das andere Argument, das Sie verwenden können, ruft ein assoziatives Array von Post-IDs mit untergeordneten Post-IDs ab:

$ args = array ('fields' => 'id => parent');

Sie würden dies verwenden, um nach Beiträgen nach Ihren anderen Argumenten und deren untergeordneten Elementen abzufragen.

Zusammenfassung

Dieser Teil der Serie ist am WP_Query führt den endgültigen Parametersatz für die WP_Query Klasse. Sie können diese verwenden, um Beiträge nach Autor, kennwortgeschütztem Status oder dem Kennwort selbst und Suchbegriffen abzufragen und festzulegen, ob die Ergebnisse der Abfrage zum Cache hinzugefügt werden und welche Felder von der Abfrage zurückgegeben werden.

Im nächsten Teil dieser Serie sehen Sie einige erarbeitete Anwendungsbeispiele WP_Query in Ihren Themen oder Plugins.