WordPress có hỗ trợ bạn custom category theo ID, và slug. Mục đích là giúp bạn tùy biến giao diện của từng category khác nhau, làm phong phú website!

Ví dụ, bạn có các danh mục như sau:

Tin tức ( id = 2, slug = tin-tuc)

Dịch vụ (id = 3, slug = dich-vu)

Bây giờ bạn muốn định dạng layout cho 2 category này khác nhau!

Thì bạn có thể tạo các file có định dạng như sau: category-id.php (category-2.php, category-3.php) hoặc category-slug.php (category-tin-tuc.php, category-dich-vu.php)

Nhưng có một vấn đề đặt ra là, nếu mình làm thế thì các danh mục con ( sub-category làm sao có thể hiện thị theo định dạng trên kia.)

Chẳng hạn như:

Danh mục Tin tức có 2 danh mục con như sau:

-Tin tức

  • Trong ngành
  • Khác ngành

và Danh mục dịch vụ là

– Dịch vụ

  • Bảo hành
  • Thiết kế
  • Quản lý

Nếu bạn sử dụng theo cách trên thì chỉ có danh mục cha là có thể, còn các danh mục con nó sẽ nhận file category.php mặc định!

Sau một thời gian tìm hiểu thì mình đã tìm ra phương pháp để áp dụng cho các danh mục con định dạng theo danh mục cha như sau:

Bạn mở file functions.php và thêm đoạn code sau vào:

[php]
function new_subcategory_hierarchy() {
$category = get_queried_object();

$parent_id = $category->category_parent;

$templates = array();

if ( $parent_id == 0 ) {
// Use default values from get_category_template()
$templates[] = "category-{$category->slug}.php";
$templates[] = "category-{$category->term_id}.php";
$templates[] = ‘category.php’;
} else {
// Create replacement $templates array
$parent = get_category( $parent_id );

// Current first
$templates[] = "category-{$category->slug}.php";
$templates[] = "category-{$category->term_id}.php";

// Parent second
$templates[] = "category-{$parent->slug}.php";
$templates[] = "category-{$parent->term_id}.php";
$templates[] = ‘category.php’;
}
return locate_template( $templates );
}

add_filter( ‘category_template’, ‘new_subcategory_hierarchy’ );
[/php]

Chỉ vậy thôi, đã giúp bạn custom từng category, và sub-category, đỡ phải tạo post-type để định dạng!

Nếu có thắc mắc, các bạn cứ comment, tớ sẽ hướng dẫn

Cảm ơn các bạn!

174 Tố Hữu, Hải Châu, Đà Nẵng +84 0982.802.531 fb.com/Hao.Zota hao.kinmedia

Để lại ý kiến của bạn:

Hotline: 0982.802.531
Nhắn tin facebook Zalo: 0982.802.531