Statamic字段数字前缀问题:成因及GraphQL查询方法
Statamic字段带数字前缀及GraphQL查询解决方案
一、字段带数字前缀的原因
带数字前缀的字段是Statamic的本地化字段,数字对应的是后台配置的语言ID。当开启多语言功能,且给字段设置了「本地化」属性后,系统会自动为不同语言版本的字段添加语言ID前缀,以此区分不同语言的字段值。
二、GraphQL查询方法
方式1:指定Locale参数推荐
在GraphQL查询中通过locale参数指定目标语言,此时可直接使用字段的原始名称(无需加数字前缀)查询对应语言的字段值:
query GetLocalizedEntries { entries(collection: "your_collection_handle", locale: "zh_CN") { data { title your_original_field_name # 使用字段原始名称,而非带前缀的名称 } } }
注:locale的值需与后台配置的语言代码一致,比如en、zh_CN。
方式2:直接查询带前缀的字段不推荐
若需要同时获取多语言版本的字段值,先确保字段的「GraphQL可见性」已开启(在字段集编辑页面,找到对应字段,开启「Include in API」),再直接使用带数字前缀的字段名查询:
query GetMultiLangFields { entries(collection: "your_collection_handle") { data { title 1_your_original_field_name # 带数字前缀的完整字段名 2_your_original_field_name } } }
这种方式可读性较差,优先推荐使用方式1指定locale查询。
三、前置检查
确保要查询的字段在字段集配置中,已开启「GraphQL」下的「Include in API」选项,否则即使字段存在,也无法通过GraphQL查询到。
内容的提问来源于stack exchange,提问作者pichlbaer
相关产品推荐
相关产品推荐

