插件配置定义元值的允许/拒绝列表
定义元值的允许/拒绝列表
我们可以通过从对应类型查询 metaValue(单个值)和 metaValues(值数组)字段,来获取自定义文章、用户、评论及分类法(标签和分类)的元值:
Post.metaValuePost.metaValuesGenericCustomPost.metaValueGenericCustomPost.metaValuesUser.metaValueUser.metaValuesComment.metaValueComment.metaValuesPostTag.metaValuePostTag.metaValuesPostCategory.metaValuePostCategory.metaValuesGenericTag.metaValueGenericTag.metaValuesGenericCategory.metaValueGenericCategory.metaValues
我们还可以通过输入字段 metaQuery,基于元数据对自定义文章、用户、评论及分类法(标签和分类)的结果进行筛选。
无论是查询还是筛选,元值可以是公开的,也可以是私有的。例如,用户元数据中包含 wp_capabilities 条目,该条目是私有的,而 description 是公开的。另外,last_name 可能根据应用程序的不同而是公开或私有的。
Gato GraphQL 插件不强制规定哪些元键是公开的、哪些是私有的;这必须经过明确配置。默认情况下,允许的元键列表为空。
元值响应
当查询在对应设置页面中未被允许访问的元键时,查询将返回错误。
例如,执行以下查询:
{
post(by: { id: 1 }) {
id
metaValue(key: "nothingHere")
}
}返回:
{
"errors": [
{
"message": "There is no meta with key 'nothingHere'",
"extensions": {
"type": "Post",
"id": 1,
"field": "metaValue(key:\"nothingHere\")"
}
}
],
"data": {
"post": {
"id": 1,
"metaValue": null
}
}
}如果查询对象不存在该元键,或其值为空,则响应为 null。否则,响应为元值。
配置允许的元键
以下是「Custom Post Meta」模块的说明。Users、Comments 和 Taxonomies 模块的操作步骤类似。
我们必须配置可通过元字段查询的元键列表。
每个条目可以是:
- 正则表达式(regex),如果被
/或#包围,或者 - 完整的元键,否则
例如,以下任意条目均可匹配元键 "_edit_last":
_edit_last/_edit_.*/#_edit_([a-zA-Z]*)#
此配置可在以下两个位置进行,按优先级排序:
- 自定义:在对应的 Schema Configuration 中
- 常规:在设置页面中
在应用于端点的 Schema Configuration 中,选择选项 "Use custom configuration",然后输入所需条目:

否则,将使用设置中「Schema Custom Post Meta」选项卡中定义的条目:

共有两种行为,「Allow access」和「Deny access」:
- Allow access: 只有已配置的条目可以被访问,其他条目均不可访问
- Deny access: 已配置的条目无法被访问,所有其他条目均可访问
