Paramètres WP_Query : auteur, recherche, mot de passe et autorisations

王林
Libérer: 2023-09-03 08:42:01
original
1057 Les gens l'ont consulté

Jusqu'à présent dans cette série, vous avez découvert les sélections de paramètres que vous pouvez utiliser avec la classe WP_Query pour sélectionner les publications par type de publication, catégorie, balises, métadonnées, date, statut, etc.

Dans ce dernier tutoriel sur les paramètres WP_Query, j'aborderai certains paramètres moins couramment utilisés qui peuvent offrir plus de flexibilité dans vos requêtes.

Les paramètres que nous introduisons ici sont utilisés pour :

  • Auteur
  • Recherche
  • Mot de passe
  • Autorisations
  • mise en cache
  • Champ de retour

Avant de commencer, voyons rapidement comment écrire des paramètres à l'aide de WP_Query.

Examen du fonctionnement des paramètres dans WP_Query

Lorsque vous écrivez WP_Query dans un thème ou un plugin, vous devez inclure quatre éléments principaux :

  • Paramètres de requête, utilisez les paramètres qui seront introduits dans ce tutoriel
  • La requête elle-même
  • Boucle
  • Fin : fermez les balises if et while et réinitialisez les données de publication

En pratique, cela ressemblera à ceci :

<?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();

?>
Copier après la connexion

Ces paramètres indiquent à WordPress quelles données obtenir de la base de données, que je couvrirai ici. Nous nous concentrons donc ici sur la première partie du code :

$args = array(
    // Arguments for your query.
);
Copier après la connexion

Comme vous pouvez le voir, les paramètres sont contenus dans un tableau. En suivant ce tutoriel, vous apprendrez à les coder.

Écrivez vos paramètres

Les paramètres du tableau ont une méthode d'encodage spécifique, comme suit :

$args = array(
    'parameter1' => 'value',
    'parameter2' => 'value',
    'parameter3' => 'value'
);
Copier après la connexion

Vous devez placer les paramètres et leurs valeurs entre guillemets simples, utiliser => entre eux et les séparer par des virgules. Si vous faites cette erreur, WordPress risque de ne pas ajouter tous les paramètres à la requête, sinon vous risquez de voir un écran blanc.

Paramètres de l'auteur

Il existe quatre paramètres qui peuvent être utilisés pour interroger par auteur :

  • author (int) : Utiliser l'identifiant de l'auteur
  • author_name (String) : utilisez "user_nicename" (pas un nom)
  • author__in (array) : utilisez l'identifiant de l'auteur
  • author__not_in (tableau)

Le premier author vous permet d'interroger les articles d'un ou plusieurs auteurs en fournissant l'identifiant de l'auteur :

$args = array(
    'author' => '2'
);
Copier après la connexion

Le code ci-dessus interroge tous les messages de l'auteur avec un identifiant 2.

Vous pouvez également utiliser des chaînes pour interroger les publications de plusieurs auteurs :

$args = array(
    'author' => '1, 2'
);
Copier après la connexion

Si vous souhaitez effectuer une requête par nom, vous pouvez utiliser le paramètre author_name :

$args = array(
    'author_name' => 'rachelmccollin'
);
Copier après la connexion

Ce paramètre prend comme paramètre la valeur du champ user_nicename dans la base de données, qui s'affiche sous forme de pseudo dans l'écran de gestion des utilisateurs :

Paramètres WP_Query : auteur, recherche, mot de passe et autorisations

Veuillez noter que puisque les utilisateurs peuvent modifier ceci, il est plus sûr d'utiliser le paramètre author (si vous pensez que vos utilisateurs pourraient le modifier).

Vous pouvez également consulter les articles d'une série d'auteurs :

$args = array(
    'author__in' => array(
        '1',
        '2'
    )
);
Copier après la connexion

Ce qui précède interrogera les publications de deux auteurs : les auteurs avec les identifiants 1 et 12 的作者,给出的结果与我在 author donneront le même résultat que la chaîne que j'ai utilisée dans author ci-dessus.

Enfin, vous pouvez exclure les publications d'un ou plusieurs auteurs à l'aide du paramètre author__not_in 参数排除一位或多位作者的帖子。下面的参数查询除作者 1. Les paramètres suivants interrogent toutes les publications sauf l'auteur 1 :

$args = array(
    'author__not_in' => array( '1' )
);
Copier après la connexion

Ou vous pouvez exclure plusieurs auteurs :

$args = array(
    'author__not_in' => array(
        '1',
        '2'
    )
);
Copier après la connexion

Vous pouvez également utiliser le paramètre author et exclure les auteurs en utilisant un signe moins devant l'identifiant de l'auteur :

$args = array(
    'author' => '-2'
);
Copier après la connexion

Paramètres de recherche

Il n'y a qu'un seul paramètre de recherche, qui est s. Utilisez-le pour rechercher des publications correspondant à vos termes de recherche. Par exemple, pour rechercher des publications contenant le mot-clé « mon plat préféré », vous utiliserez :

$args = array(
    's' => 'my favorite food'
);
Copier après la connexion

Par exemple, cela pourrait vous être utile pour rechercher des articles connexes avec des mots-clés similaires.

Paramètres du mot de passe

Vous pouvez utiliser deux paramètres de mot de passe pour interroger les publications avec ou sans protection par mot de passe :

  • has_password (bool)
  • post_password (Chaîne)

Le premier paramètre has_password vous permet de rechercher des publications avec ou sans protection par mot de passe. Donc, pour interroger les publications protégées par mot de passe :

$args = array(
    'has_password' => true
);
Copier après la connexion

Pour les publications sans mot de passe :

$args = array(
    'has_password' => false
);
Copier après la connexion

Vous pouvez également interroger par le mot de passe lui-même, en utilisant le paramètre post_password :

$args = array(
    'post_password' => 'mypassword'
);
Copier après la connexion

Paramètres d'autorisation

Les autorisations n'ont qu'un seul paramètre, la valeur perm,用于查询当前用户有权限阅读的帖子。它采用 'readable', qui est destinée à être utilisée conjointement avec d'autres paramètres.

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

$args = array(
    'has_password' => true,
    'perm' => 'readable'
);
Copier après la connexion

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

$args = array(
    'post_status' => 'draft',
    'perm' => 'readable'
);
Copier après la connexion

缓存参数

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

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

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

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

$args = array(
    'post_type' => 'product',
    'cache_results' => false
);
Copier après la connexion

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

$args = array(
    'post_type' => 'product',
    'update_post_meta_cache' => false,
    'update_post_term_cache' => false
);
Copier après la connexion

返回字段参数

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

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

$args = array(
    'fields' => 'ids'
);
Copier après la connexion

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

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

$args = array(
    'fields' => 'id=>parent'
);
Copier après la connexion

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

摘要

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

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!