Heim  >  Artikel  >  Backend-Entwicklung  >  WP_Query-Parameter: Autor, Suche, Passwort und Berechtigungen

WP_Query-Parameter: Autor, Suche, Passwort und Berechtigungen

王林
王林Original
2023-09-03 08:41:111058Durchsuche

Bisher haben Sie in dieser Serie die Parameterauswahl kennengelernt, die Sie mit der WP_Query-Klasse verwenden können, um Beiträge nach Beitragstyp, Kategorie, Tags, Metadaten, Datum, Status und mehr auszuwählen.

In diesem letzten Tutorial zu WP_Query Parametern werde ich einige weniger häufig verwendete Parameter behandeln, die für mehr Flexibilität bei Ihren Abfragen sorgen können.

Die hier vorgestellten Parameter werden verwendet für:

  • Autor
  • Suchen
  • Passwort
  • Berechtigungen
  • Caching
  • Rückgabefeld

Bevor wir beginnen, schauen wir uns kurz an, wie man Parameter mit WP_Query schreibt.

Überprüfung der Funktionsweise von Parametern in WP_Query

Wenn Sie WP_Query in ein Theme oder Plugin schreiben, müssen Sie vier Hauptelemente einschließen:

  • Abfrageparameter: Verwenden Sie die Parameter, die in diesem Tutorial vorgestellt werden
  • Die Abfrage selbst
  • Schleife
  • Ende: If- und While-Tags schließen und Beitragsdaten zurücksetzen

In der Praxis wird das etwa so aussehen:

<?php

$args = array(
    // Arguments for your query.
);

// Custom query.
$query = new WP_Query( $args );

// Check that we have query results.
if ( $query->have_posts() ) {

    // Start looping over the query results.
    while ( $query->have_posts() ) {

        $query->the_post();

        // Contents of the queried post results go here.

    }

}

// Restore original post data.
wp_reset_postdata();

?>

Diese Parameter teilen WordPress mit, welche Daten aus der Datenbank abgerufen werden sollen, worauf ich hier eingehen werde. Wir konzentrieren uns hier also auf den ersten Teil des Codes:

$args = array(
    // Arguments for your query.
);

Wie Sie sehen können, sind die Parameter in einem Array enthalten. Wenn Sie diesem Tutorial folgen, erfahren Sie, wie Sie sie codieren.

Schreiben Sie Ihre Parameter

Die Parameter im Array haben eine bestimmte Codierungsmethode wie folgt:

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

Sie müssen Parameter und ihre Werte in einfache Anführungszeichen setzen, => zwischen ihnen verwenden und sie durch Kommas trennen. Wenn Sie diesen Fehler machen, fügt WordPress der Abfrage möglicherweise nicht alle Parameter hinzu, andernfalls wird möglicherweise ein weißer Bildschirm angezeigt.

Autorenparameter

Es gibt vier Parameter, die zur Abfrage nach Autor verwendet werden können:

  • author (int): Autoren-ID verwenden
  • author_name (String): Verwenden Sie „user_nicename“ (keinen Namen)
  • author__in (array): Autoren-ID verwenden
  • author__not_in (Array)

Mit der ersten Möglichkeit author können Sie Beiträge eines oder mehrerer Autoren abfragen, indem Sie die Autoren-ID angeben:

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

Der obige Code fragt alle Beiträge des Autors mit der ID 2 ab.

Sie können Zeichenfolgen auch verwenden, um Beiträge mehrerer Autoren abzufragen:

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

Wenn Sie nach Namen abfragen möchten, können Sie den author_name-Parameter verwenden:

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

Dieser Parameter übernimmt als Parameter den Wert des user_nicename-Feldes in der Datenbank, das als Spitzname im Benutzerverwaltungsbildschirm angezeigt wird:

WP_Query-Parameter: Autor, Suche, Passwort und Berechtigungen

Bitte beachten Sie, dass es sicherer ist, den Parameter author zu verwenden, da Benutzer dies bearbeiten können (wenn Sie glauben, dass Ihre Benutzer ihn ändern könnten).

Sie können auch Beiträge einer Reihe von Autoren überprüfen:

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

Das Obige fragt die Beiträge von zwei Autoren ab: Die Autoren mit den IDs 1 und 12 的作者,给出的结果与我在 author liefern das gleiche Ergebnis wie die Zeichenfolge, die ich in Autor verwendet habe Parameter oben.

Schließlich können Sie mit dem Parameter author__not_in 参数排除一位或多位作者的帖子。下面的参数查询除作者 1 Beiträge eines oder mehrerer Autoren ausschließen. Die folgenden Parameter fragen alle Beiträge außer dem Autor 1 ab:

$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 den Parameter author verwenden und Autoren ausschließen, indem Sie ein Minuszeichen vor der Autoren-ID verwenden:

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

Suchparameter

Es gibt nur einen Suchparameter, nämlich s. Verwenden Sie dies, um nach Beiträgen zu suchen, die Ihren Suchbegriffen entsprechen. Um beispielsweise nach Beiträgen zu suchen, die das Schlüsselwort „mein Lieblingsessen“ enthalten, würden Sie Folgendes verwenden:

$args = array(
    's' => 'my favorite food'
);

Dies könnte beispielsweise für die Suche nach verwandten Beiträgen mit ähnlichen Schlüsselwörtern hilfreich sein.

Passwortparameter

Sie können zwei Passwortparameter verwenden, um Beiträge mit oder ohne Passwortschutz abzufragen:

  • has_password (bool)
  • post_password (String)

Der erste Parameter has_password ermöglicht die Abfrage von Beiträgen mit oder ohne Passwortschutz. Also, um passwortgeschützte Beiträge abzufragen:

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

Für Beiträge ohne Passwort:

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

Sie können auch das Passwort selbst abfragen, indem Sie den Parameter post_password verwenden:

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

Berechtigungsparameter

Berechtigungen haben nur einen Parameter, den perm,用于查询当前用户有权限阅读的帖子。它采用 'readable'-Wert, der in Verbindung mit anderen Parametern verwendet werden soll.

因此,要查询受密码保护的帖子并仅在用户具有适当权限时才显示它们,您可以使用以下命令:

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

或者,如果当前用户有权查看草稿帖子,则可以使用以下命令:

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

缓存参数

共有三个缓存参数,它们会阻止查询检索到的数据添加到缓存中:

  • cache_results (boolean):帖子信息缓存
  • update_post_meta_cache (boolean):发布元信息缓存
  • update_post_term_cache (boolean):帖子术语信息缓存

这三个选项的默认值都是 true:如果您希望将数据添加到缓存中,则不需要使用它们。

因此,要显示 product 帖子类型的所有帖子,但不将帖子信息添加到缓存中,您可以使用以下命令:

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

通常您不应该使用这些参数,因为将发布数据添加到缓存是一个很好的做法。但是,您有时可能希望检索帖子,以便只使用一些帖子数据,在这种情况下,您不需要缓存中的其余帖子数据。例如,当您只想输出带有链接的帖子标题列表时,在这种情况下,您不需要将帖子术语数据或元数据添加到缓存中:

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

返回字段参数

您可以使用 fields 参数来指定从查询中返回哪些字段。这可以节省从数据库中的字段返回的数据,而在循环中输出数据时不需要这些数据。

默认情况下是返回所有字段,但是您有两个选项可以使用 fields 参数来限制这一点。首先,'ids' 参数:

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

这只会返回帖子 ID 数组,不会返回其他字段。如果您想在循环中输出任何内容(例如帖子标题),则必须使用 get_the_title ($post->ID); 等函数来输出标题,这将处理事情的方式很冗长。

您可以使用的另一个参数获取帖子 ID 与子帖子 ID 的关联数组:

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

您可以使用它根据您的其他参数及其子参数查询帖子。

摘要

WP_Query 系列的这一部分介绍了 WP_Query 类的最终参数集。您可以使用它们按作者、密码保护状态或密码本身和搜索词查询帖子,并设置是否将查询结果添加到缓存以及查询返回哪些字段。

在本系列的下一部分中,您将看到一些在主题或插件中使用 WP_Query 的有效示例。

Das obige ist der detaillierte Inhalt vonWP_Query-Parameter: Autor, Suche, Passwort und Berechtigungen. 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