Chào các Bạn,

Mới đây mình nhận được một câu hỏi là làm thế nào để Tạo giao diện khác nhau cho từng Category trong WordPress. Phần này thực tế cũng khá dễ, vậy 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 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 Slug riêng cho Category đó.
Ví dụ :
– Theo ID: Bạn sẽ tạo 1 file là : 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 tự thay code hiển thị riêng cho Category nà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.
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 http://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.

Các bạn cũng có thể tham khảo thêm chức năng tự tùy biếng single theo category nhé:
Tự tùy biến trang Single theo Category trong WordPress

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