Store Builder

Viết bài

Tạo một bài blog, chọn loại nội dung, xếp vào chuyên mục — và một cảnh báo đáng đọc trước khi bạn chọn "Trang".

Blog nằm ở Quản lý → Blog (en: Manage → Blog). Chuyên mục nằm riêng ở Danh mục Blog (en: Blog Categories).

Danh sách hiện Tiêu đề, Slug, Trạng thái, Danh mục, Ngày đăng, tìm theo tiêu đề hoặc slug, lọc theo trạng thái.

Tạo một bài

Bài viết mới (en: New article). Biểu mẫu có bốn tab.

Nội dung

Tiêu đề — bắt buộc.

Slug — tự sinh từ tiêu đề nếu bạn để trống, và nó là địa chỉ bài viết. Chỉ chữ thường, số và dấu gạch ngang. Trùng với bài khác thì bạn nhận "Đã có bài viết dùng slug này."

Slug của bài viết tự sinh và tự khử trùng lặp. Slug của chuyên mục thì không — nó bắt buộc và bạn phải tự đặt. Đó là quy tắc của nghiệp vụ, không phải một chỗ thiếu nhất quán: slug chuyên mục là một đoạn URL do người viết chọn.

Tóm tắt — một dòng, dùng cho danh sách bài và cho SEO.

Loại nội dung — xem mục kế tiếp.

URL ảnh bìa, Tác giả, Thẻ (gõ rồi Enter).

Loại nội dung: Văn bản có định dạng, hay Trang

Văn bản có định dạng (en: Rich text) là lựa chọn bạn nên dùng. Bạn viết nội dung với định dạng thông thường, và nó hiển thị được trên trang đã xuất bản.

Trang (trình soạn giao diện) (en: Page) cho phép dựng thân bài bằng trình dựng trang. Nhưng hãy đọc cảnh báo mà biểu mẫu hiện ra:

"Nội dung bài viết này được lưu dưới dạng trang giao diện, mà trang đã xuất bản chưa hiển thị được — bài viết sẽ lên site mà không có nội dung nào. Hãy chuyển lại về Văn bản có định dạng để xuất bản."

Nói thẳng: chọn "Trang" hôm nay nghĩa là bài viết đăng lên mà không có nội dung. Danh sách bài sẽ gắn nhãn Chưa có nội dung cho những bài như vậy. Đây là tính năng chưa hoàn thiện, và cả trình soạn lẫn tài liệu này đều nói ra thay vì để bạn phát hiện sau khi đăng.

Qua API cũng vậy: đọc một bài kiểu page thì được, nhưng ghi nó trả về 409 unsupported_body_type — vì thân bài đó không đi trong trường nào của hình dạng ghi, nên một lệnh PUT sẽ không sửa nó mà xoá nó, trong một request trông y như một lần chỉnh sửa bình thường. Xem API công khai.

Danh mục

Chọn các chuyên mục blog cho bài này. Nếu chưa có chuyên mục nào, tab nói rõ: "Không tìm thấy danh mục blog. Hãy tạo danh mục trong Danh mục Blog trước."

Chuyên mục là một danh sách riêng, quản lý ở Danh mục Blog. Một chuyên mục không được chuyển vào bên dưới chính hậu duệ của nó — thử làm vậy sẽ nhận lỗi cycle_detected.

Meta và SEO

Meta title, Meta description, Từ khóa — thứ công cụ tìm kiếm đọc. Xem SEO.

Nội dung được làm sạch khi lưu

Phần thân bài được làm sạch lúc ghi: các thẻ script và trình xử lý sự kiện bị tước bỏ, bởi nội dung này được render nguyên văn vào một trang storefront mà khách tải về.

Hệ quả thực tế: hãy đọc lại nội dung sau khi lưu thay vì cho rằng thứ bạn dán vào chính là thứ sẽ được phục vụ. Nếu bạn dán HTML từ nơi khác, một phần có thể đã bị bỏ đi.

Bài viết hiển thị ở đâu

Bài viết không tự có một trang riêng do bạn dựng. Chúng dùng trang mẫu loại Bài viết (en: Post) của site, và danh sách bài dùng trang loại Blog. Bạn dựng hai trang đó một lần, và mọi bài dùng chung chúng.

Nghĩa là: nếu site chưa có trang loại Bài viết, các địa chỉ bài viết không hiển thị được gì. Xem Trang và canvas.

Muốn đổ danh sách bài lên một trang bất kỳ, dùng phần tử danh sách — xem Danh sách tự đổ dữ liệu.

Xoá

Xoá một bài viết là vĩnh viễn và không hoàn tác được.

Qua API

GET, POST, PUT, DELETE cho /api/v1/articles/api/v1/blog-categories, cả hai dưới cùng một cặp quyền blog.read / blog.write. Các categoryIds không nhận ra sẽ bị bỏ đi chứ không làm hỏng cả lần nhập — hãy so với phản hồi để biết cái nào đã dính.

Cập nhật 22/8/2026