插件配置
插件配置定义 Settings 的允许条目

定义 Settings 的允许条目

使用 Schema Settings 模块,您可以通过查询 optionValueoptionValuesoptionObjectValue 字段,获取站点的设置(存储在 wp_options 表中)。

这些字段具有不同的签名:

  • optionValue: AnyBuiltInScalar
  • optionValues: [AnyBuiltInScalar]
  • optionObjectValue: JSONObject

例如,以下 query 可获取站点的 URL:

{
  homeURL: optionValue(name: "home")
}

出于安全原因,可查询的选项必须明确配置。

Settings 响应

执行任何「optionValue」字段时,如果 Settings 中未允许访问该选项名称,query 将返回错误。

例如,执行以下 query:

{
  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 中定义条目

有 2 种行为,「Allow access」和「Deny access」:

  • Allow access: 只有已配置的条目可以访问,其他条目均不可访问
  • Deny access: 已配置的条目不可访问,所有其他条目均可访问
定义访问行为
定义访问行为

默认选项

安装插件后,以下选项默认预定义为可访问:

  • "siteurl"
  • "home"
  • "blogname"
  • "blogdescription"
  • "WPLANG"
  • "posts_per_page"
  • "date_format"
  • "time_format"
  • "blog_charset"