Tạo Giao Diện Khác Nhau Cho Từng Category Trong WordPress

Sending
User Review
5 (2 votes)

Chào các Bạn,

Để Tạo giao diện khác nhau cho từng Category trong WordPress thực tế cũng không có gì khó, nên trong bài này mình sẽ giúp các bạn giải quyết 2 vấn đề:

  • Tạo giao diện khác nhau cho từng Category
  • Làm cho giao diện của Category Con tự giống với giao diện Category Cha.
Tạo Giao Diện khác Nhau Cho Từng Category Trong WordPress

Tạo giao diện khác nhau cho từng Category:

Trong phần này WordPress đã hỗ trợ sẵn cho bạn, bạn có thể tạo File category.php theo ID hoặc theo Slug riêng cho Category đó.
Ví dụ :
– Theo ID: Bạn sẽ tạo 1 file category theo Id như sau: category-id.php (category-1.php, category-2.php, category-3.php, …)
– Theo Slug: file category sẽ có dạng: category-slug.php (category-tin-tuc.php, category-du-an.php)
sau đó chúng ta muốn giao diện category này như thế nào thì bạn tự thay code hiển thị riêng cho Category này như vậy.

Làm cho giao diện của Category Con tự giống với giao diện Category Cha:

Hãy xét nếu Website WordPress của bạn có cấu trúc danh mục như bên dưới
– Tin tức (category-tin-tuc.php)
— Tin mới
— Tin hot
– Dự án (category-du-an.php)
— Dự án trong Nước
— Dự án nước ngoài

Vậy làm sao để các Danh Mục Con Tự động lấy Template của Danh Mục Cha, bây giờ ta cần thêm đoạn code bên dưới vào file Functions.php là được.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function wp_category_template() {
$category = get_queried_object();
$parent_id = $category->category_parent;
$templates = array();
if ( $parent_id == 0 ) {
$templates[] = "category-{$category->slug}.php";
$templates[] = "category-{$category->term_id}.php";
$templates[] = 'category.php';
} else {
$parent = get_category( $parent_id );
$templates[] = "category-{$category->slug}.php";
$templates[] = "category-{$category->term_id}.php";
$templates[] = "category-{$parent->slug}.php";
$templates[] = "category-{$parent->term_id}.php";
$templates[] = 'category.php';
}
return locate_template( $templates );
}
add_filter( 'category_template', 'wp_category_template' );

Đoạn code được tham khảo từ trang werdswords.com.
Như vậy khi làm xong 2 bước trên, bạn đã giải quyết được vấn đề của mình rồi.

 

Chúc các bạn thành công!

Trả lời