Hệ thống phân cấp mẫu của giao diện block WordPress
Toàn bộ hệ thống phân cấp mẫu của giao diện block (FSE): với mỗi loại yêu cầu, danh sách mẫu WordPress tìm theo thứ tự, cụ thể nhất trước rồi lùi dần về index.html. Phiên bản của thời đại block tương ứng với sơ đồ phân cấp cổ điển.
Với mỗi yêu cầu, WordPress tìm các mẫu này theo thứ tự — cụ thể nhất trước — và dừng lại ở mẫu đầu tiên có trong thư mục /templates của giao diện. Chuỗi này luôn kết thúc ở index.html.
Trang chủ
Trang chủ của website, bất kể bạn đặt nó hiển thị các bài viết mới nhất hay một trang tĩnh.
- front-page.html
- home.html
- index.html
front-page.html wins regardless of the Settings → Reading choice. If the front page is a static page and there is no front-page.html, it falls through to the static-page chain, not home.html.
Trang danh sách bài viết
Trang liệt kê các bài viết mới nhất của bạn (mục "Trang bài viết" trong Cài đặt → Đọc).
- home.html
- index.html
Bài viết đơn
Một bài viết blog riêng lẻ.
- single-post-{slug}.html
- single-post.html
- single.html
- singular.html
- index.html
Bài đơn của custom post type
Một mục riêng lẻ của một custom post type (ví dụ một "book").
- single-{post-type}-{slug}.html
- single-{post-type}.html
- single.html
- singular.html
- index.html
Với một post type "book" có slug "dune": single-book-dune.html, rồi đến single-book.html, rồi single.html.
Trang tĩnh
Một trang WordPress thông thường.
- page-{slug}.html
- page-{id}.html
- page.html
- singular.html
- index.html
Trang dùng template tùy chỉnh
Một trang được gán template tùy chỉnh trong bảng Template của trình chỉnh sửa.
- {custom-template}.html
- page-{slug}.html
- page-{id}.html
- page.html
- singular.html
- index.html
Template tùy chỉnh được khai báo trong mảng customTemplates của theme.json và nằm trong /templates. Template đã gán sẽ được ưu tiên hơn toàn bộ chuỗi template của trang.
Trang lưu trữ chuyên mục
Trang lưu trữ liệt kê các bài viết trong một chuyên mục.
- category-{slug}.html
- category-{id}.html
- category.html
- archive.html
- index.html
Trang lưu trữ thẻ
Trang lưu trữ liệt kê các bài viết có một thẻ cụ thể.
- tag-{slug}.html
- tag-{id}.html
- tag.html
- archive.html
- index.html
Trang lưu trữ taxonomy tùy chỉnh
Trang lưu trữ cho một term trong một taxonomy tùy chỉnh.
- taxonomy-{taxonomy}-{term}.html
- taxonomy-{taxonomy}.html
- taxonomy.html
- archive.html
- index.html
Trang lưu trữ tác giả
Trang lưu trữ các bài viết của một tác giả.
- author-{nicename}.html
- author-{id}.html
- author.html
- archive.html
- index.html
Trang lưu trữ theo ngày
Trang lưu trữ theo năm / tháng / ngày.
- date.html
- archive.html
- index.html
Trang lưu trữ của post type
Trang lưu trữ cho một custom post type có bật has_archive.
- archive-{post-type}.html
- archive.html
- index.html
Kết quả tìm kiếm
Trang kết quả khi tìm kiếm trên website.
- search.html
- index.html
404 (không tìm thấy)
Hiển thị khi không có nội dung nào khớp với URL.
- 404.html
- index.html
Trang tệp đính kèm
Trang cho một tệp media đính kèm riêng lẻ.
- attachment.html
- single.html
- singular.html
- index.html
Nhiều website tắt hẳn các trang tệp đính kèm (vì đây là nội dung mỏng, ít giá trị). Nếu bạn vẫn giữ chúng, đây là chuỗi template áp dụng.
Trang chính sách bảo mật
Trang được đặt làm chính sách bảo mật của website trong phần Cài đặt.
- page-privacy-policy.html
- privacy-policy.html
- page.html
- singular.html
- index.html
Điểm khác biệt so với hệ thống phân cấp cổ điển (PHP)
- Template là các tệp .html trong /templates, không phải tệp .php ở thư mục gốc của theme. Không có single.php — mà là single.html.
- Các vùng tái sử dụng (header, footer) là các template part trong /parts, được tham chiếu bằng block wp:template-part, chứ không phải các lời gọi PHP get_header() / get_footer().
- Không có chuỗi get_template_part() và cũng không có get_header()/get_footer(). Việc kết hợp được thực hiện bằng block Template Part bên trong các tệp .html.
- index.html là BẮT BUỘC. Một block theme không có templates/index.html thì không phải là một block theme hợp lệ — đây là phương án dự phòng cuối cùng bắt buộc cho mọi route ở trên.
- Một theme được xem là block theme nhờ SỰ HIỆN DIỆN của templates/index.html cùng với một tệp theme.json, chứ không phải bởi bất kỳ cờ khai báo nào trong header.
- Bạn có thể chỉnh sửa bất kỳ template nào trong số này ngay trong Site Editor (Giao diện → Trình chỉnh sửa) và lưu thay đổi vào cơ sở dữ liệu — những thay đổi đó sẽ GHI ĐÈ lên các tệp của theme cho đến khi bạn xóa tùy chỉnh. Điều này khiến nhiều người bối rối khi debug "tại sao thay đổi template của tôi lại không có tác dụng".