このシリーズではこれまで、WP_Query
クラスで使用して、投稿タイプ、カテゴリ、タグ、メタデータ、日付、ステータスなどによって投稿を選択できるパラメーター選択について学習しました。
#WP_Query パラメータに関するこの最後のチュートリアルでは、クエリの柔軟性を高めるため、あまり使用されないパラメータについて説明します。
###著者### ###検索### ###パスワード###
WP_Query を記述する場合は、次の 4 つの主要な要素を含める必要があります。
実際には、これは次のようになります:
パラメータとその値は一重引用符で囲み、それらの間に
=>を使用し、カンマで区切る必要があります。この間違いを犯すと、WordPress がクエリにすべてのパラメーターを追加しない可能性があり、追加しないと白い画面が表示されることがあります。
作成者のパラメータ
author
(int): 著者 ID を使用します
String
): 「user_nicename」(名前ではありません)を使用してくださいauthor__in
(array): 著者 ID を使用しますauthor__not_in
(array)最初の
author では、著者 ID: を指定して、1 人以上の著者による投稿をクエリできます。
リーリー
を持つ作成者のすべての投稿をクエリします。
文字列を使用して複数の作成者による投稿をクエリすることもできます:
リーリー
パラメータを使用できます:
リーリー
このパラメータは、データベースの
フィールドの値をパラメータとして受け取ります。この値は、ユーザー管理画面にニックネームとして表示されます:
author パラメーターを使用する方が安全であることに注意してください。
リーリー
上記は 2 人の著者の投稿をクエリします。著者の ID は
1
2 で、得られる結果は
author## での私の結果と同じです。 # パラメータ。
最後に、
author__not_in
1
を除くすべての投稿をクエリします:
リーリー
または、複数の著者を除外することもできます:
リーリー
または、
author パラメータを使用し、著者 ID の前にマイナス記号を使用して著者を除外することもできます。
リーリー
検索パラメータ
検索パラメータは s
という 1 つだけです。これを使用して、検索用語に一致する投稿をクエリします。たとえば、キーワード「私の好きな食べ物」を含む投稿をクエリするには、次のように使用します:
リーリー
たとえば、これは、類似したキーワードを含む関連投稿を検索する場合に便利です。
パスワードパラメータ
2 つのパスワード パラメータを使用して、パスワード保護の有無にかかわらず投稿をクエリできます。
)
(
String最初のパラメータ
リーリー
パスワードなしの投稿の場合:
リーリー
リーリー
権限パラメータ
Permission には、パラメータ 'readable' 値をとり、他のパラメーターと組み合わせて使用することを目的としています。
因此,要查询受密码保护的帖子并仅在用户具有适当权限时才显示它们,您可以使用以下命令:
$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
的有效示例。
以上がWP_Query パラメータ: 作成者、検索、パスワード、権限の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。