"field_contract": "nested-v1" trong config/theme.json. Field hệ thống giữ ở cấp gốc (item.title, term.name); field tùy chỉnh đọc qua item.fields.{key}, term.fields.{key}. Các field hệ thống như categories vẫn ở cấp gốc dù lưu dạng quan hệ. Section settings, block settings và configs không đổi. Bản release chưa chuyển đổi vẫn dùng mô hình cũ; thay đổi draft chỉ lên runtime sau khi publish.Object terms
Đọc danh mục và thẻ bằng taxonomy, ID hoặc slug. Term không còn key; key của taxonomy vẫn được giữ nguyên.
Cách sử dụng
{% set categories = terms.get(taxonomy="post_categories", limit=100) %}
{% for category in categories %}
<a href="/blog/{{ category.slug|urlencode }}">{{ category.name }}</a>
{% endfor %}
{% set selected = terms.get(slug=slug, taxonomy="post_categories", limit=1) %}
{% if selected %}
{% set posts = entries.get(type="post", term=selected.0.id) %}
{% endif %}Tham số get
| Tham số | Ý nghĩa |
|---|---|
| taxonomy | Bắt buộc. Key taxonomy được cấp cho website, ví dụ post_categories. |
| id | ID ổn định của term, lọc chính xác. |
| slug | Slug sau khi chọn bản dịch, lọc chính xác. |
| q | Tìm trong tên, mô tả, không phân biệt hoa thường. |
| locale | Mặc định ngôn ngữ trang; fallback theo theme. |
| order | position (mặc định), name, -name. |
| limit | Mặc định 100, số nguyên 1–500. |
Thứ tự tham số không quan trọng. Không trộn tham số vị trí. Tham số lạ, bao gồm key cũ, sẽ báo lỗi.
Kết quả
Mỗi term có field hệ thống id, taxonomy_id, taxonomy, parent_id, slug, name, description, position, locale, is_fallback. Field do người dùng tạo nằm trong term.fields.{key}, ví dụ category.fields.content; fields là object rỗng khi chưa có giá trị. parent_id rỗng nếu là danh mục gốc. Không có key hoặc số entries.
Quyền và ngôn ngữ
Chỉ đọc taxonomy và term active trong workspace, được website cấp quyền. Không có taxonomy trả danh sách rỗng. Thiếu scope/database hoặc lỗi truy vấn báo lỗi render. Term thiếu bản dịch hiện tại lẫn fallback bị bỏ qua.
Chuyển từ key
Thay terms.get(key=...) bằng id=... hoặc slug=.... Dùng term.id khi gán bài viết, chỉnh sửa và xóa; dùng slug cho URL công khai. Form term chỉ nhập tên, slug, mô tả, trạng thái, cha và các field tùy chỉnh. CSV dùng id,parent_id,locale,name,slug,description; định dạng key,parent_key cũ không còn được chấp nhận.
Giới hạn hiện tại
Dữ liệu được nạp qua dịch vụ taxonomy rồi lọc trong bộ nhớ. find, paginate và các bộ lọc ids, hide_empty, include_children chưa triển khai.