「センシティブ」なデータフィールドのクエリ
GraphQLスキーマは、公開APIでプライベートな情報を露出しないよう、パブリックフィールドとプライベートフィールドのバランスを取る必要があります。
デフォルトでは、GraphQLスキーマのすべてのフィールドはパブリックデータにのみアクセスできます。たとえば、posts はステータスが "publish" の投稿のみを取得できます。
さらに、「センシティブ」なデータフィールドと入力フィールドをスキーマに追加することができます。これらは管理者のみが使用することを想定しており、特定のカスタムエンドポイントまたはpersisted queryに対して有効化され、プライベートデータも取得できます。
たとえば、フィールド引数 posts(filter:) には追加の入力フィールド status が含まれ、任意のユーザーに対して未公開の投稿(例:ステータスが "pending"、"draft"、または "trash" の投稿)を取得できるようになります。同様に、スキーマはフィールド Post.status を公開し、このデータを確認できるようにします。
「センシティブ」なデータ要素の一覧
以下の要素(その他を含む)は、デフォルトでプライベートデータとして扱われます:
User:
emailrolescapabilitiesmetaKeys
Custom Posts:
statuswpAdminEditURLhasPasswordpasswordrawContentrawTitlerawExcerptmetaKeys
Comments:
statusrawContentmetaKeys
Taxonomies:
metaKeys
Custom Post Mutations:
authorBy入力
Menu Items:
rawTitle
デフォルト設定の上書き
上記の要素はパブリックに変更できます。
設定ページの各対応タブに、それぞれを「センシティブ」または「通常」として扱うかどうかを設定するチェックボックスがあります:

スキーマイントロスペクションによる「センシティブ」なデータ要素の確認
スキーマイントロスペクションを行う際、isSensitiveDataElement プロパティがフィールド extensions に追加されます。スキーマ内の「センシティブ」なデータ要素を確認するには、次のクエリを実行してください:
query ViewSensitiveDataElements {
__schema {
types {
name
fields {
name
extensions {
isSensitiveDataElement
}
args {
name
extensions {
isSensitiveDataElement
}
}
}
inputFields {
name
extensions {
isSensitiveDataElement
}
}
enumValues {
name
extensions {
isSensitiveDataElement
}
}
}
}
}その後、結果の中から "isSensitiveDataElement": true のエントリを検索してください。
エンドポイントへの「センシティブ」なデータ要素の追加
「センシティブ」なデータ要素をスキーマに追加する設定は、優先順位の順に次のように行えます:
✅ スキーマ設定で定義された、カスタムエンドポイントまたはpersisted query固有のモード

✅ 設定で定義されたデフォルトモード
スキーマ設定の値が "Default" の場合、設定で定義されたモードが使用されます:

使用するタイミング
静的ウェブサイトの構築時やローカルのWordPressインスタンスからデータを取得する場合(つまり公開APIではない場合)など、プライベートな情報の公開が許可されている場合に使用してください。