プラグインの設定
プラグインの設定Settingsの許可エントリの定義

Settingsの許可エントリの定義

Schema Settingsモジュールを使用すると、optionValueoptionValuesoptionObjectValueフィールドをクエリすることで、サイトの設定(wp_optionsテーブルに保存されたもの)を取得できます。

これらのフィールドはそれぞれ異なるシグネチャを持ちます:

  • optionValue: AnyBuiltInScalar
  • optionValues: [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つあり、優先順位順に並べると:

  1. カスタム:対応するSchema Configurationにて
  2. 全体:Settingsページにて

エンドポイントに適用されるSchema Configurationで、オプション "Use custom configuration" を選択し、希望するエントリを入力します:

Schema Configurationのエントリの定義

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

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"