Nhãn hiệu - custom taxonomy trên trang muasamvui.com của tôi

Hướng dẫn tạo Custom Taxonomy trong WordPress

Trong Drupal và trong WordPress các bạn rất quen thuộc với taxonomy, hoặc nếu bạn chưa biết tới taxonomy thì hãy xem “tag” và “category” chính là Taxonomy, vậy thì vấn đề bây giờ, các bạn muốn nhóm bài viết sang một loại taxonomy không phải là tag và category nữa thì sao ?

Trường hợp thế này: Bạn có sản phẩm máy tính của hãng Apple, bạn nhóm vào category là máy tính để bàn, nhóm vào tag là Máy tính cao cấp, bài toán của các bạn cần phải giải quyết là sao có thể thêm một định nghĩa mới nữa là thương hiệu chẳng hạn, để các bạn thêm máy tính này vào thương hiệu APPLE ! Đó là lúc chúng ta cần code để tạo Custom Taxonomy.

Nhãn hiệu - custom taxonomy trên trang muasamvui.com của tôi
Nhãn hiệu – custom taxonomy trên trang muasamvui.com của tôi

Để tạo được Custom Taxonomy các bạn vào trong file functions.php của gói giao diện đang cài đặt và thêm dòng code sau:

    function jamviet_custom_prority_init() {
        # Nhãn hiệu = TAG
            $lbnh = array(
                 'name' => 'Nhãn hiệu',
                 'singular_name' => 'Nhãn hiệu',
                 'search_items' =>  'Tìm kiếm',
                 'popular_items' => 'Nhãn hiệu phổ biến',
                 'all_items' => 'Tất cả nhãn hiệu',
                 'parent_item' => '',
                 'parent_item_colon' => '',
                 'edit_item' => 'Chỉnh sửa nhãn hiệu',
                 'update_item' => 'Cập nhật nhãn hiệu',
                 'add_new_item' => 'Thêm nhãn hiệu',
                 'new_item_name' => 'Thêm nhãn hiệu mới'
            );
            register_taxonomy(
                'nhan-hieu', 
                'post', 
                array(
                    'hierarchical' => false,
                    'label' => 'Nhãn hiệu',
                    'labels' => $lbnh,
                    'query_var' => true,
                    'rewrite' => true
            ));
    }
    add_action( 'init', 'jamviet_custom_prority_init', 0 );

Các bạn có thể nhìn trên code và thấy rằng khai báo nhãn hiệu ( custom taxonomy ) sẽ không phân cấp nên giá trị “hierarchical” sẽ là “false” giống như tag của WordPress vậy.

Nhãn hiệu xuất hiện trong admin giống như tag
Nhãn hiệu xuất hiện trong admin giống như tag

Để hiển thị Custom Taxonomy chúng ta cần dùng một hàm để hiển thị ra danh sách:

    #
    #    Func List cái Thương hiệu ra
    #
    
    function list_labels() {
            $args = array(
                'type'                     => 'post',
                'parent'                   => '',
                'orderby'                  => 'name',
                'order'                    => 'ASC',
                'hide_empty'               => 0,
                'hierarchical'             => 0,
                'exclude'                  => '',
                'include'                  => '',
                'number'                   => '',
                'taxonomy'                => 'nhan-hieu',
                'pad_counts'               => false 
                );
            $data = get_categories( $args );
        ?>
            <h4 class="tt1">Chọn theo nhãn hiệu</h4>
                <ul class="slm">
            <?php
                if ( $data )
                    foreach ( $data as $dat ) {
                    echo '<li><a href="'. get_term_link($dat->slug, 'nhan-hieu') .'">'. $dat->cat_name .' ('.$dat->count .')</a></li>';
                    }
            ?>
                </ul>
        <?php
    }

Còn nữa, để hiển thị trên trang sản phẩm, các bạn cần gọi hàm sau:

<?php the_terms( $post->ID, 'nhan-hieu', 'Nhãn hiệu: ', ',' ) ?>

Và cuối cùng, nếu bạn không muốn sử dụng file Tag.php hoặc Archives.php trong gói giao diện thì có thể thêm file Taxonomy-nhan-hieu.php vào gói giao diện để hoàn thành nhé.

Với các Taxonomy khác làm tương tự, chỉ là đổi tên thôi !

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

TÁC GIẢ:

Tôi là Jam, thâm niên 7 năm thiết kế website và làm SEO. Hãy theo dõi blog của tôi để nhận được nhiều chia sẻ thú vị xung quanh chủ đề công nghệ.

Có 6 bình luận !

  1. Chào bạn, mình đã làm theo bạn và hiển thị được Nhãn hiệu ở bài viết rồi. Nhưng khi click vào link Nhãn hiệu đó thì nó ra bài mới.
    Giờ mình muốn click vào link Nhãn hiệu thì nó hiển thị ra trang giống như click vào Categories thì làm thế nào bạn nhỉ.
    Cảm ơn bạn.

    1. Bạn cóp nguyên file category.php sau đó đổi tên thành taxonomy-nhan-hieu.php sau đó bạn vào setting > permalink và bấm cập nhật để cập nhật đường link, sau đó bạn ghé thử đường link nhãn hiệu, nó sẽ show danh sách tin giống như category !
      Chúc bạn thành công !

  2. Chào bạn. mình đã tạo taxonomy dạng theo category hành công như cách của bạn. Mình tạo cái này nhằm mục đích tạo danh sách các tỉnh thành khi thành viên đăng tin. Mình đã hiện nó ra theo dạng thả xuống dropdown. Bây giờ mình muốn danh sách tỉnh thành này được sắp xếp theo tên thì làm thế nào ak. Xin chân thành cảm ơn

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *