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.
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.php
và index.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}.php
và category-{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é.
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.ph
p trong thư mục theme rồi chạy lại nhé.
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é!!