sanity - 在 Sanity Studio 中过滤内容
问题描述
我想知道是否可以根据设定的标准过滤 Sanity Studio 中的内容。例如,返回所有已发布的帖子或特定类别中的所有帖子等。
这是一个简短的视频,展示了我的意思: https ://www.loom.com/share/5af3a9dd79f045458de00e8f5365cf00
这可能吗?如果是这样,是否有任何有关如何操作的文档?
谢谢。
解决方案
我发现制作各种过滤器的最简单方法是使用结构生成器。使用它,您可以添加任意数量的部分,命名它们,并以 groq 和 params 的形式为其提供您自己的过滤器。
Se 文档:https ://www.sanity.io/docs/structure-builder-introduction
作为一个例子,我S.listItem
在deskStructure.js文件中添加了一个获取所有缺少模块字段的文章的文件。
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
])
),
// ...
它不会在一个元素列表上制作不同的过滤器。更多的是制作不同的列表,这些列表都可以根据需要进行过滤。你可以给它任何你想要的图标和文本。马铃薯/potàto ,'-)
在排序列表中,除了添加更多排序之外,我认为您无能为力。而且当元素列表变大时它不起作用,所以我不会打扰。但它在排序顺序部分:https ://www.sanity.io/docs/sort-orders
推荐阅读
- python - 在 django 中进行原始 SQL 查询后结果为空,但在 mysql db 中使用相同的 sql?
- single-sign-on - 在用户认证后获取控制权以发送修改后的用户详细信息
- ajax - 使用 HTTP/2 时如何修复多个同时 XHR 连接的 HTTP/2.0 504 网关超时
- android - 如何实现滑动以删除列表视图以从 Firestore 中删除数据
- g++ - 为什么 g++ 找不到 -I 包含路径中的预编译头文件?
- workflow - 使用 activiti 将工作流分配给 Alfresco 中的组
- python-3.x - Groupby 扩展计数 - 不同时间戳组的元素变化
- python - 如何使用自定义时区在 django 中根据时间过滤查询集?
- python - 如何生成一个随机数,将它们放入字典中,然后返回重复次数
- go - 在 helm 模板中将千兆字节转换为字节