Hệ thống phân cấp mẫu (Template Hierarchy) WordPress

Trong WordPress, Template Hierarchy (hệ thống phân cấp mẫu) là quy trình mà WordPress sử dụng để xác định tệp mẫu (template) nào cần được tải cho mỗi trang mà người dùng yêu cầu. WordPress sẽ tìm kiếm các tệp mẫu theo một trình tự từ cụ thể đến tổng quát, dựa trên loại trang mà người dùng đang truy cập (ví dụ: trang bài viết đơn, trang danh mục, trang chính,…).


Dưới đây là cấu trúc thứ tự ưu tiên của các tệp trong Template Hierarchy của WordPress:

1. Trang bài viết đơn (Single Post)

Khi người dùng truy cập vào một bài viết đơn lẻ (single post), WordPress sẽ tìm kiếm theo thứ tự sau:

  1. single-{post-type}-{slug}.php (ví dụ: single-post-hello-world.php)
  2. single-{post-type}.php (ví dụ: single-post.php nếu post type là “post”)
  3. single.php
  4. singular.php
  5. index.php

2. Trang trang đơn (Page)

Khi người dùng truy cập vào một trang (page) đơn lẻ, WordPress sẽ tìm kiếm theo thứ tự sau:

  1. page-{slug}.php (ví dụ: page-contact.php)
  2. page-{id}.php (ví dụ: page-10.php)
  3. page.php
  4. singular.php
  5. index.php

3. Trang lưu trữ (Archive Pages)

Trang lưu trữ bao gồm các loại như danh mục (category), thẻ (tag), tác giả (author), ngày tháng (date), hoặc custom taxonomy (chuyên mục tùy chỉnh).

  • Danh mục (Category):
    1. category-{slug}.php (ví dụ: category-news.php)
    2. category-{id}.php (ví dụ: category-6.php)
    3. category.php
    4. archive.php
    5. index.php
  • Thẻ (Tag):
    1. tag-{slug}.php (ví dụ: tag-tech.php)
    2. tag-{id}.php (ví dụ: tag-14.php)
    3. tag.php
    4. archive.php
    5. index.php
  • Chuyên mục tùy chỉnh (Custom Taxonomy):
    1. taxonomy-{taxonomy}-{term}.php (ví dụ: taxonomy-product-category-books.php)
    2. taxonomy-{taxonomy}.php (ví dụ: taxonomy-product-category.php)
    3. taxonomy.php
    4. archive.php
    5. index.php
  • Tác giả (Author):
    1. author-{nicename}.php (ví dụ: author-john.php)
    2. author-{id}.php (ví dụ: author-2.php)
    3. author.php
    4. archive.php
    5. index.php
  • Ngày tháng (Date):
    1. date.php
    2. archive.php
    3. index.php

4. Trang tìm kiếm (Search Results Page)

Khi người dùng thực hiện một tìm kiếm trên trang WordPress, hệ thống sẽ tìm kiếm tệp mẫu theo thứ tự:

  1. search.php
  2. index.php

5. Trang lỗi 404 (404 Page Not Found)

Khi người dùng truy cập vào một trang không tồn tại, WordPress sẽ tìm kiếm theo thứ tự:

  1. 404.php
  2. index.php

6. Trang chủ (Home Page)

  • Nếu bạn đã thiết lập một trang tĩnh (static page) làm trang chủ, WordPress sẽ tìm kiếm theo thứ tự:
    1. front-page.php
    2. home.php
    3. page.php
    4. index.php
  • Nếu bạn chưa thiết lập trang tĩnh làm trang chủ (trang chủ hiển thị bài viết blog), WordPress sẽ tìm kiếm theo thứ tự:
    1. home.php
    2. index.php

7. Trang đính kèm (Attachment Page)

Khi người dùng truy cập vào trang đính kèm (attachment) của một tệp media (như hình ảnh, video), WordPress sẽ tìm kiếm theo thứ tự:

  1. mime_type.php (ví dụ: image.php, video.php)
  2. attachment.php
  3. single-attachment.php
  4. singular.php
  5. index.php

8. Trang bài viết tùy chỉnh (Custom Post Type Single Post)

Đối với các loại bài viết tùy chỉnh (Custom Post Type), WordPress tìm kiếm theo thứ tự:

  1. single-{post_type}.php (ví dụ: single-product.php)
  2. single.php
  3. singular.php
  4. index.php

9. Trang lưu trữ tùy chỉnh (Custom Post Type Archive Page)

Đối với trang lưu trữ của loại bài viết tùy chỉnh, WordPress sẽ tìm kiếm theo thứ tự:

  1. archive-{post_type}.php (ví dụ: archive-product.php)
  2. archive.php
  3. index.php

10. Trang bình luận (Comments Page)

Nếu có trang bình luận, WordPress sẽ tìm kiếm theo thứ tự:

  1. comments.php
  2. index.php

Tổng quan hệ thống phân cấp mẫu (Template Hierarchy)

Dưới đây là tổng quan về cách WordPress tìm kiếm template, từ cụ thể đến tổng quát:

  1. Cụ thể theo slug hoặc ID (ví dụ: category-{slug}.php, page-{id}.php).
  2. Cụ thể theo loại post type hoặc taxonomy (ví dụ: single-{post_type}.php, taxonomy-{taxonomy}.php).
  3. Các template tổng quát như single.php, page.php, archive.php.
  4. Các template dự phòng như singular.php, index.php.