Bỏ qua tới nội dung
Tra cứu

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.

  1. front-page.html
  2. home.html
  3. 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).

  1. home.html
  2. index.html

Bài viết đơn

Một bài viết blog riêng lẻ.

  1. single-post-{slug}.html
  2. single-post.html
  3. single.html
  4. singular.html
  5. 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").

  1. single-{post-type}-{slug}.html
  2. single-{post-type}.html
  3. single.html
  4. singular.html
  5. 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.

  1. page-{slug}.html
  2. page-{id}.html
  3. page.html
  4. singular.html
  5. 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.

  1. {custom-template}.html
  2. page-{slug}.html
  3. page-{id}.html
  4. page.html
  5. singular.html
  6. 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.

  1. category-{slug}.html
  2. category-{id}.html
  3. category.html
  4. archive.html
  5. 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ể.

  1. tag-{slug}.html
  2. tag-{id}.html
  3. tag.html
  4. archive.html
  5. 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.

  1. taxonomy-{taxonomy}-{term}.html
  2. taxonomy-{taxonomy}.html
  3. taxonomy.html
  4. archive.html
  5. 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ả.

  1. author-{nicename}.html
  2. author-{id}.html
  3. author.html
  4. archive.html
  5. index.html

Trang lưu trữ theo ngày

Trang lưu trữ theo năm / tháng / ngày.

  1. date.html
  2. archive.html
  3. 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.

  1. archive-{post-type}.html
  2. archive.html
  3. index.html

Kết quả tìm kiếm

Trang kết quả khi tìm kiếm trên website.

  1. search.html
  2. 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.

  1. 404.html
  2. index.html

Trang tệp đính kèm

Trang cho một tệp media đính kèm riêng lẻ.

  1. attachment.html
  2. single.html
  3. singular.html
  4. 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.

  1. page-privacy-policy.html
  2. privacy-policy.html
  3. page.html
  4. singular.html
  5. 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".