我想知道是否有可能根据设定的标准来过滤Sanity Studio中的内容。例如,返回所有已发布的帖子或特定类别中的所有帖子,等等。
以下是一段简短的视频,说明了我的意思:https://www.loom.com/share/5af3a9dd79f045458de00e8f5365cf00
这个是可能的吗?如果是这样的话,有没有关于如何做的文档?
谢谢。
发布于 2021-03-05 07:18:25
我找到的制作各种过滤器的最简单的方法是使用Structure Builder。使用它,您可以添加任意数量的节,为它们命名,并以groq和params的形式为其提供自己的过滤器。
Se文档:https://www.sanity.io/docs/structure-builder-introduction
作为示例,我在deskStructure.js文件中添加了一个S.listItem,用于获取缺少模块字段的所有文章。
export default async () =>
S.list()
.title('Content')
.items([
// ...
S.listItem() // <-- New root item for my filters
.title('My article filters')
.icon(FaRegCopyright)
.child(
S.list() // <-- List of filters
.title('My article filters')
.items([
S.listItem() // <-- Item with filter description
.title('Articles without module')
.icon(FaCogs)
.child(
S.documentList() // <-- Filtered list of articles
.title('Articles without module')
.menuItems(S.documentTypeList(menuType).getMenuItems())
.filter('_type == $type && !defined(module)')
.params({ type: 'article' })
),
S.listItem(), // more filters
S.listItem(), // more filters
])
),
// ...它不会对一个元素列表进行不同的过滤。更多的是制作不同的列表,这些列表都是根据你的需要进行过滤的。你可以给它任何你想要的图标和文本。土豆/大麻,'-)
在排序列表中,我认为除了添加更多排序之外,您不能做太多的事情。而且,当元素列表变得更大时,它也不起作用,所以我不会费心去做。但是它在排序部分:https://www.sanity.io/docs/sort-orders
https://stackoverflow.com/questions/66474130
复制相似问题