Hierarchy là từ chuyên ngành nghĩa là hệ thống thứ tự cấp bậc.

Ở đây là Template Hierarchy dành cho Wordpress. Mình sẽ cố gắng viết đơn giản để bạn có thể nắm được.

Vì sao bạn cần phải nắm Template Hierarchy bởi vì nó rất quan trọng trong việc thiết kế giao diện, cách tạo file và hiểu được Wp đang truy vấn như thế nào.

15223812128980

Khi 1 người truy vấn vào đường dẫn sau:
http://localhost/code/category/video/

Danh mục video có ID là 1 và đường dẫn tĩnh (slug) là video

Wordpress sẽ đi theo thứ tự sau ở Chuyên mục

category-{slug}.php -> category-{id}.php -> category.php -> archive.php -> index.php

Giải thích: Wordpress sẽ đi từ trái sang phải, nếu nó không tìm thấy file category-{slug}.php nó sẽ tìm file category-{id}.php nếu không có qua category.php cho đến archive.phpindex.php. Như vậy ở chuyên mục category
thì categor-slug.php là cấp cao nhất.

Vậy mục đích để làm gì? Xin thưa là để ta có thể control theo ý thích của ta, ý thích của khách hàng, mặc định Wordpress bỏ qua 2 file category-{slug}.phpcategory-{id}.php để đến thẳng file category.php.

Để chứng minh điều này tôi sẽ tạo 3 file trong thư mục theme

  • category.php
  • category-video.php ứng với (category-{slug}.php)
  • category-1.php ứng với (category-{id}.php)

Sau đó tôi tiến hành vào Backend để xem thử nó sẽ chạy file nào trước nhé.

tuts_1

Bạn thấy đó, Wp sẽ truy cập nội dung của file category-video.php trước.
Giờ mình sẽ xóa file category-video.php trong thư mục theme rồi chạy lại nhé.

tut_2

Bạn thấy đó, WP sẽ truy cập vào file category-1.php
Và cuối cùng nó sẽ chỉ truy cập vào file category.php nếu không có file category-1.php.

Thực tế: Bạn có thể control danh mục video theo ý thích của mình, có thể trang trí riêng cho danh mục này hoặc thêm thắt riêng tính năng.

Đó cũng là lý do tại sao khi tạo theme thì cần phải có file index.php vì nó sẽ là thằng nhận toàn bộ trách nhiệm nếu các cấp bậc trên không tồn tại, đường nào cũng về la mã mà phải không bạn.

Dưới đây là danh sách mình đã tổng hợp lại cấp bậc để bạn tiện trong việc thiết kế giao diện.

404

404.php -> index.php

Search

search.php -> index.php

Taxonomy

taxonomy-{tag}-{item}.php -> taxonomy-{tag}.php -> taxanomy.php -> archive.php -> index.php

Home

home.php -> index.php

Attachment

{mime-type}.php -> attachment.php -> single.php -> index.php

Single

single-{post-type}.html -> single.php -> index.php

Page

{custom-template}.html -> page-{slug}.php -> page-{id}.php -> page.php -> index.php

Category

category-{slug}.php -> category-{id}.php -> category.php -> archive.php -> index.php

Tag

tag-{slug}.php -> tag-{id}.php -> tag.php -> archive.php -> index.php

Author

author-{author-name}.php -> author-{author-id}.php -> author.php -> archive.php -> index.php

Date

date.php -> archive.php -> index.php

Archive

archive.php -> index.php

Cám ơn bạn đã đọc bài viết này, hãy chia sẻ bài viết để mọi người có thể biết đến bạn nhé!!