我将媒体库插件添加到我的 sanity structure builder 中,但想删除插件创建的“媒体标签”文档
但是,您可以通过使用 Sanity 的结构构建器定义您自己的自定义办公桌来覆盖此行为,并在您的定义中简单地省略 media.tag 文档类型
我不清楚如何用我目前的结构做到这一点
plugins: [
deskTool({
structure: pageStructure([home, settings]),
defaultDocumentNode: previewDocumentNode({ apiVersion, previewSecretId }),
}),
singletonPlugin([home.name, settings.name]),
productionUrl({
apiVersion,
previewSecretId,
types: PREVIEWABLE_DOCUMENT_TYPES,
}),
media(),
vercelDeployTool(),
visionTool({ defaultApiVersion: apiVersion }),
],
项目设置在
JSON
。
您调用的函数可能也返回JSON
。所以应该有一个简单的解决方法。
其中一个函数添加了一个属性
media.tag
及其值。 (我不知道具体是哪个函数,但你可以通过打印 plugins
数组中的每个对象轻松找到)。
一旦你发现了这一点,你就可以在 JavaScript 中使用
delete
运算符。
这里有一个简单的例子,你可以很容易地推导出来:
const plugins = {
// other properties here
media: {
tag: "plugin-tag",
// other properties here
},
}
delete plugins.media.tag // returns true if property deleted.
/*
Plugins object after deletion of `media.tag`:
const plugins = {
// other properties here
media: {
// other properties here
},
}
*/
⚠️注意:我把
tag
当作media
对象上的属性,如果media.tag
是单个属性的名称,请使用括号符号(["media.tag"]
)代替。
完成此操作后,您“在定义中省略了 media.tag 文档类型”,您应该可以开始了。
在 Sanity 中,桌面结构是内容模式和其中包含的数据的可视化表示。桌面结构提供了一种在 Sanity 中组织和管理内容的方法,可以通过 Sanity Desk 界面访问它。
要从 Sanity Desk 结构中删除特定文档,您可以按照以下步骤操作:
或者,您也可以通过运行以下命令使用 Sanity CLI 删除文档:
sanity documents delete <documentID>
替换为您要删除的文档的ID。您可以在 URL 中找到文档 ID,也可以使用 Sanity API 查询文档。