プラグインの設定Settingsの許可エントリの定義
Settingsの許可エントリの定義
Schema Settingsモジュールを使用すると、optionValue、optionValues、optionObjectValueフィールドをクエリすることで、サイトの設定(wp_optionsテーブルに保存されたもの)を取得できます。
これらのフィールドはそれぞれ異なるシグネチャを持ちます:
optionValue: AnyBuiltInScalaroptionValues: [AnyBuiltInScalar]optionObjectValue: JSONObject
たとえば、次のクエリはサイトのURLを取得します:
{
homeURL: optionValue(name: "home")
}セキュリティ上の理由から、クエリできるオプションは明示的に設定する必要があります。
Settingsのレスポンス
いずれかの「optionValue」フィールドを実行した際、そのオプション名へのアクセスがSettingsで許可されていない場合、クエリはエラーを返します。
たとえば、次のクエリを実行すると:
{
optionValue(name: "nonExistentOption")
}以下が返されます:
{
"errors": [
{
"message": "There is no option with name 'nonExistentOption'",
"extensions": {
"type": "Root",
"id": "root",
"field": "optionValue(name:\"nonExistentOption\")"
}
}
],
"data": {
"option": null
}
}それ以外の場合、レスポンスは指定した名前の設定値となります。
許可オプションの設定
クエリできるオプション名の一覧を設定する必要があります。
各エントリは次のいずれかになります:
/または#で囲まれている場合は正規表現(regex)、- それ以外の場合はオプション名の完全一致
たとえば、次のいずれのエントリもメタキー "siteurl" に一致します:
siteurl/site.*/#site([a-zA-Z]*)#
この設定を行える場所は2つあり、優先順位順に並べると:
- カスタム:対応するSchema Configurationにて
- 全体:Settingsページにて
エンドポイントに適用されるSchema Configurationで、オプション "Use custom configuration" を選択し、希望するエントリを入力します:

それ以外の場合は、Settingsの「Settings」タブで定義されたエントリが使用されます:

動作には「Allow access」と「Deny access」の2種類があります:
- Allow access: 設定されたエントリのみアクセス可能で、それ以外はアクセスできません
- Deny access: 設定されたエントリはアクセスできませんが、それ以外のすべてのエントリはアクセス可能です

デフォルトオプション
プラグインをインストールすると、次のオプションがデフォルトでアクセス可能として事前定義されています:
"siteurl""home""blogname""blogdescription""WPLANG""posts_per_page""date_format""time_format""blog_charset"