検索
ホームページバックエンド開発PHPチュートリアルWP_Query パラメータ: 作成者、検索、パスワード、権限

WP_Query パラメータ: 作成者、検索、パスワード、権限

Sep 03, 2023 am 08:41 AM
パスワード権限検索wp_query著者

このシリーズではこれまで、WP_Query クラスで使用して、投稿タイプ、カテゴリ、タグ、メタデータ、日付、ステータスなどによって投稿を選択できるパラメーター選択について学習しました。

#WP_Query パラメータに関するこの最後のチュートリアルでは、クエリの柔軟性を高めるため、あまり使用されないパラメータについて説明します。

ここで紹介するパラメータは次の目的で使用されます。

###著者### ###検索### ###パスワード###
    権限
  • ###キャッシング###
  • 戻りフィールド
  • 始める前に、
  • WP_Query
  • を使用してパラメータを記述する方法を簡単に確認しましょう。
  • WP_Query のパラメーターがどのように機能するかを確認する
テーマまたはプラグインで

WP_Query を記述する場合は、次の 4 つの主要な要素を含める必要があります。

クエリ パラメーター。このチュートリアルで紹介するパラメーターを使用します。

クエリ自体 ###サイクル###

終了: if タグと while タグを閉じて、公開データをリセットします

実際には、これは次のようになります:

リーリー
    これらのパラメータは、データベースからどのデータを取得するかを WordPress に指示します。これについては、ここで説明します。ここで注目するのは、コードの最初の部分です:
  • リーリー
  • ご覧のとおり、パラメータは配列に含まれています。このチュートリアルに従うにつれて、それらをコーディングする方法を学びます。
  • パラメータを記述します
  • 配列内のパラメータには、次のような特定のエンコード方法があります:
リーリー

パラメータとその値は一重引用符で囲み、それらの間に

=>

を使用し、カンマで区切る必要があります。この間違いを犯すと、WordPress がクエリにすべてのパラメーターを追加しない可能性があり、追加しないと白い画面が表示されることがあります。

作成者のパラメータ

作成者によるクエリに使用できるパラメータは 4 つあります:

author

(

int): 著者 ID を使用します

author_name

(

String

): 「user_nicename」(名前ではありません)を使用してください
  • author__in (array): 著者 ID を使用します
  • author__not_in (array)
  • 最初の author では、著者 ID: を指定して、1 人以上の著者による投稿をクエリできます。 リーリー
  • 上記のコードは、ID
  • 2 を持つ作成者のすべての投稿をクエリします。 文字列を使用して複数の作成者による投稿をクエリすることもできます: リーリー
  • 名前でクエリを実行する場合は、
author_name

パラメータを使用できます: リーリー このパラメータは、データベースの

user_nicename

フィールドの値をパラメータとして受け取ります。この値は、ユーザー管理画面にニックネームとして表示されます:

ユーザーはこれを編集できるため、ユーザーが変更する可能性があると思われる場合は、

author パラメーターを使用する方が安全であることに注意してください。

著者の一連の投稿をクエリすることもできます:

リーリー 上記は 2 人の著者の投稿をクエリします。著者の ID は 1

2WP_Query パラメータ: 作成者、検索、パスワード、権限 で、得られる結果は

author## での私の結果と同じです。 # パラメータ。

最後に、author__not_in

パラメーターを使用して、1 人以上の投稿者からの投稿を除外できます。次のパラメータは、作成者

1

を除くすべての投稿をクエリします:

リーリー または、複数の著者を除外することもできます: リーリー または、author パラメータを使用し、著者 ID の前にマイナス記号を使用して著者を除外することもできます。 リーリー 検索パラメータ

検索パラメータは s という 1 つだけです。これを使用して、検索用語に一致する投稿をクエリします。たとえば、キーワード「私の好きな食べ物」を含む投稿をクエリするには、次のように使用します: リーリー たとえば、これは、類似したキーワードを含む関連投稿を検索する場合に便利です。

パスワードパラメータ

2 つのパスワード パラメータを使用して、パスワード保護の有無にかかわらず投稿をクエリできます。

has_password

(

bool

)

post_password

(

String

)

最初のパラメータ
    has_password
  • を使用すると、パスワード保護の有無にかかわらず投稿をクエリできます。したがって、パスワードで保護された投稿をクエリするには: リーリー パスワードなしの投稿の場合: リーリー
  • post_password
  • パラメータを使用して、パスワード自体でクエリを実行することもできます: リーリー 権限パラメータ Permission には、パラメータ
  • perm
が 1 つだけあり、現在のユーザーが読み取り権限を持つ投稿をクエリするために使用されます。これは

'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 サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPセッションの概念を簡単に説明してください。PHPセッションの概念を簡単に説明してください。Apr 26, 2025 am 12:09 AM

phpssionsStrackuserdataacrossmultiplepagerequestsusingauniqueidstoredinacookie.here'showtomanageetheemefectively:1)Startassession withsession_start()andstoredatain $ _ session.2)RegeneratesseSsessidafterloginwithsession_id(the topreventes_id)

PHPセッションに保存されているすべての値をどのようにループしますか?PHPセッションに保存されているすべての値をどのようにループしますか?Apr 26, 2025 am 12:06 AM

PHPでは、次の手順を通じてセッションデータを繰り返すことができます。1。session_start()を使用してセッションを開始します。 2。$ _Sessionアレイのすべてのキー価値ペアを介してforeachループを反復します。 3.複雑なデータ構造を処理する場合、is_array()またはis_object()関数を使用し、print_r()を使用して詳細情報を出力します。 4.トラバーサルを最適化する場合、ページングを使用して、一度に大量のデータの処理を避けることができます。これにより、実際のプロジェクトでPHPセッションデータをより効率的に管理および使用するのに役立ちます。

ユーザー認証にセッションを使用する方法を説明します。ユーザー認証にセッションを使用する方法を説明します。Apr 26, 2025 am 12:04 AM

このセッションは、サーバー側の状態管理メカニズムを介してユーザー認証を実現します。 1)セッションの作成と一意のIDの生成、2)IDはCookieを介して渡されます。3)サーバーストアとIDを介してセッションデータにアクセスします。

PHPセッションにユーザーの名前を保存する方法の例を挙げてください。PHPセッションにユーザーの名前を保存する方法の例を挙げてください。Apr 26, 2025 am 12:03 AM

tostoreauser'snameInappession、starthessession withsession_start()、thensignthenameto $ _session ['username']。1)ousession_start()toinitializethessession.2)assighttheuser'snameto $ _ session ['username']

PHPセッションを失敗させる可能性のあるいくつかの一般的な問題は何ですか?PHPセッションを失敗させる可能性のあるいくつかの一般的な問題は何ですか?Apr 25, 2025 am 12:16 AM

PHPSESSIONの障害の理由には、構成エラー、Cookieの問題、セッションの有効期限が含まれます。 1。構成エラー:正しいセッションをチェックして設定します。save_path。 2.Cookieの問題:Cookieが正しく設定されていることを確認してください。 3.セッションの有効期限:セッションを調整してください。GC_MAXLIFETIME値はセッション時間を延長します。

PHPでセッション関連の問題をどのようにデバッグしますか?PHPでセッション関連の問題をどのようにデバッグしますか?Apr 25, 2025 am 12:12 AM

PHPでセッションの問題をデバッグする方法は次のとおりです。1。セッションが正しく開始されるかどうかを確認します。 2.セッションIDの配信を確認します。 3.セッションデータのストレージと読み取りを確認します。 4.サーバーの構成を確認します。セッションIDとデータを出力し、セッションファイルのコンテンツを表示するなど、セッション関連の問題を効果的に診断して解決できます。

session_start()が複数回呼び出されるとどうなりますか?session_start()が複数回呼び出されるとどうなりますか?Apr 25, 2025 am 12:06 AM

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

PHPでセッションのライフタイムをどのように構成しますか?PHPでセッションのライフタイムをどのように構成しますか?Apr 25, 2025 am 12:05 AM

PHPでのセッションライフサイクルの構成は、session.gc_maxlifetimeとsession.cookie_lifetimeを設定することで達成できます。 1)session.gc_maxlifetimeサーバー側のセッションデータのサバイバル時間を制御します。 0に設定すると、ブラウザが閉じているとCookieが期限切れになります。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール