[英]Sanity.io CMS – program a schema type
我已經創建了一個架構類型,如下所示,我想對其進行編程,以便為每篇博客文章增加:1 - 第一篇文章,2 - 第二篇文章,依此類推(然后這個數字將用於多個頁面) . 一件簡單的事情,但我找不到有關如何做的任何信息。 這有沒有可能? 任何鏈接/示例/參考將不勝感激。
// schemas/post.js
{
name: 'index',
title: 'Index',
type: 'number',
},
謝謝
您不一定需要在架構中添加此計數。 我在架構中看到的一些問題包括:
#11
條是否應該變成#10
?_ids
本身之外,Sanity 目前對字段沒有unique
功能,因此這可能會很成問題。另一種方法是通過 GROQ 動態獲取這個值,它(我認為)在未來更有彈性並且更容易改變。
這是一個示例查詢:
*[slug == $articleSlug]{
...,
// Count every older article and add 1 - that's the current article's index
"articleIndex": count(*[
// From every published article (non-draft)
_type == 'article' &&
!(_id in path("drafts.**")) &&
// Get only those older than the current one
_createdAt > ^._createdAt
]) + 1
}
如果您發現您的查詢變得復雜且難以管理,我建議將其部分抽象為變量,正如我在編寫復雜查詢的GROQ指南中概述的那樣 😉
希望這有幫助🙏
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.