WordPress template hierarchy – hệ thống cấp bậc trong template trong wordpress

Để trở thành wordpress developer tốt tất nhiên bạn cần biết WordPress template hierarchy. Hiểu cách hoạt động của cấu trúc giao diện WordPress  sẽ giúp bạn có nhiều khả năng hơn để tùy biến theme.

Các mục của WordPress template hierarchy

  • 1.Site front page
  • 2.Single posts
  • 3.Single pages
  • 4.Category và tag pages
  • 5.Custom post types
  • 6.Custom Taxonomy
  • 7.Trang kết quả tìm kiếm
  • 8.Trang lỗi 404

Ngoài ra còn Author Archive và Attachment Post nhưng đều rất ít gặp đến nên tôi sẽ không đề cập vào bài viết.

template hierarchy

Các tệp tin template chính

Hầu hết các trang WordPress đều cần nhiều template files để hoạt động, bao gồm:

functions.php

index.php

header.php

sidebar.php

footer.php

single.php

page.php

comments.php

search.php

archive.php….

 

Cách hệ thống cấp bậc trong template trong wordpress( WordPress template hierarchy )

Gỉa sử tôi có một category là wordpressid = 36 bạn truy cập vào kho lưu trữ category này của tôi trên lbk.vn. WordPress template hierarchy sẽ hoạt động như sau:

  • Đầu tiên wordPress sẽ tìm file template gọi là category-wordpress.php trong cùng thư mục của theme.
  • Nếu không có file category-hosting.php, WordPress sẽ tìm theo category ID, ví dụ như category-36.php.
  • Nếu WordPress không thể tìm được bất kỳ file nào, nó sẽ tìm file category.php.
  • Nếu nó vẫn không tìm thấy file category.php, WordPress sẽ quay lại tìm template file archive.php.
  • Cuối cùng, nếu tất cả đều không thành công, nó sẽ tải file index.php của theme và dùng nó làm template của trang.

Tuy nhiên tiêu chuẩn các theme đều có file category.php hoặc archive.php.

Như bạn thấy, để truy cập vào template chứa category “wordpress” trải qua nhiều quá trình tìm kiếm, ưu tiên theo một quy tắc từ cao xuống thấp. đây chỉ là quy tắc ưu tiên của một phần trong mục Category và tag pages  đã đề cập bên trên, tiếp theo tôi sẽ trình bày phần còn lại.

Cách hoạt động của các mục chính wordpress template hierarchy

template hierarchy
ảnh minh họa template hierarchy

Site Front Page

Về front page của website bạn. Khi WordPress tải trang chủ lên cấp độ ưu tiên như sau: front-page.php => home.php => index.php.

Kể cả khi có đầy đủ 3 file wordpress cũng chỉ tải duy nhất 1 file theo thứ tự ưu tiên.

Single Posts

Bài viết này nằm trong loại single posts nên tôi lấy ví dụ luôn bài này nhé. Bài này có slug: wordpress-template-hierarchy-he-thong-cap-bac-trong-template-trong-wordpress-2927,   id  = 2927

Khi wordpres tải single posts  sẽ tải theo cấp độ sau : single-{post-type}-{slug}.php sẽ được ưu tiên tải đầu tiên => single-{post-type}.php => single.php => singular.php => index.php.

Chiếu theo thông tin bài viết thì độ ưu tiên tải của bài viết này : single-post-wordpress-template-hierarchy-he-thong-cap-bac-trong-template-trong-wordpress-2927.php. dài quá. => single-post.php => single.php => singular.php => index.php

Thông thường theme sẽ không có file single-{post-type}-{slug}.php. Nếu bạn thích tạo mẫu riêng cho riêng một bài viết thì hãy sử dụng single-{post-type}-{slug}.php

Single Pages

Khi wordpres tải single pages  sẽ tải theo cấp độ sau file template riêng => page–{slug}.php => page-{id}.php => page.php => singular.php => index.php

Tương tự như Single Posts nhưng file template riêng tôi chưa động đến bao giờ nên, còn về phần page-{slug}.php, page-{id}.php vẫn hoạt động rất tốt nhé.

Category và Tag Pages

Khi wordpres tải Catategory hoặc Tags  sẽ tải theo cấp độ sau category(tag)–{slug}.php  => category(tag)-{id}.php => category(tag).php => archive.php => index.php

Custom Post Types

Custom post type

Custom post type là một loại post type tùy chỉnh, tùy vào nhu cầu của bài viết, ví dụ trang webcủa bạn chuyên review các loại ô tô, bạn nên cân nhắc tạo riếng một post type dành riêng cho việc này.

Khi wordpres tải Custom Post Types sẽ tải giống thứ tự ưu tiên của Single Posts , chỉ việc thay {post-type} giống postype bạn tạo là được. ví dụ giả sử tôi có một custom postype “image-gallery” , bài viết có slug “cong-ty-lbk-trong-hoat-dong-gan-ket-tai-ha-noi-36” wordpress sẽ ưu tiên tải theo cấp độ sau :single-image-gallery-cong-ty-lbk-trong-hoat-dong-gan-ket-tai-ha-noi-36.php =>   single-image-gallery.php => single.php => singular.php => index.php.

Custom post type Archive

archive-{post_type}.php => archive.php => index.php

Custom Taxonomy

Taxonomy là phân loại dữ liệu, Tag, category là một loạt category đặc biệt thông dụng dùng cho bài viết, tuy nhiên với Custom Post Types có thể sẽ không sử dụng đến mà sử dụng đến  Custom Taxonomy.

Ví dụ Trang web của bạn đăng song hành 2 loại posttype  một loại là bài viết, một loại là dự án. Bạn sẽ không muốn sử dụng category có sẵn cho dự án đâu, vì các term bạn tạo cho bài viết chưa hẳn đã phù hợp với loại posttype dự án và nếu  bạn xử dụng chung category khi lấy ra các bài viết thuộc category chúng sẽ hiển thị cả 2 loại bài viết là dự án và bài viết. trong trường hợp này bạn có thể tạo thêm custom taxonomy riêng cho postype dự án của bạn để phân biệt với category.

Giả sử tôi taxonomy mới có slug “project” và trong taxonomy tôi có tạo môt term có slug “nha-may-thuy-dien-hoa-binh” wordpress sẽ ưu tiên tải như sau:  taxonomy-project-nha-may-thuy-dien-hoa-binh.php

=> taxonomy-project.php => taxonomy.php => archive.php  => index.php

Trang kết quả tìm kiếm

Hầu hết các trang đều có template file search.php. Độ ưu tiên tải của loại này đơn giản như sau: search.php => index.php

Trang không tìm thấy 404

Hầu hết các trang cũng có teamplate để hiển thị cho việc không tìm thấy dữ liệu Độ ưu tiên cũng rất đơn giản: 404.php => index.php

 

Trên đây là bài viết trình bày về template hierarchy.

Tài liệu tham khảo: https://developer.wordpress.org/themes/basics/template-hierarchy/

Bình luận

0 bình luận

  • Hãy là người đầu tiên để lại bình luận cho bài viết này!