Trang chủ WordpressWordpress Development WordPress Custom Taxonomy toàn tập

WordPress Custom Taxonomy toàn tập

bởi Thạch Phạm
23 bình luận 7838 views
Khuyến mãi hosting

Mặc định trong WordPress có hỗ trợ bạn sẵn 2 khái niệm để phân loại nội dung là CategoryTag. Vậy chúng ta có thể tự thêm một khái niệm khác tương tự 2 cái có sẵn nhưng có thể sử dụng cùng lúc hay là không? Câu trả lời là hoàn toàn được và chúng ta sẽ sử dụng tính năng Custom Taxonomy có trong WordPress để làm, cũng giống như khái niệm Custom Post Type mà thôi.

Thông thường Custom Taxonomy được sử dụng khi bạn cần tạo thêm một cái gì đó để phân loại nội dung mà không phải dùng đến category và tag, ví dụ như tạo serie, tỉnh thành, loại,…..

Không dài dòng như Custom Post Type, Custom Taxonomy khá dễ sử dụng vì nó ngắn gọn, chỉ cần bạn viết một vài đoạn code là xong hoặc có thể sử dụng các plugin như Types, Custom Post Type UI để tạo.

Cấu trúc code tạo Custom Taxonomy

Để tạo Custom Taxonomy thì chúng ta chỉ cần khai báo mẫu ngắn gọn như sau:

function tao_taxonomy() {

	/* Biến $label chứa các tham số thiết lập tên hiển thị của Taxonomy
	 */
	$labels = array(

	);

	/* Biến $args khai báo các tham số trong custom taxonomy cần tạo
	 */
	$args = array(

	);

	/* Hàm register_taxonomy để khởi tạo taxonomy
	 */
	register_taxonomy('loai-san-pham', 'post', $args);

}

// Hook into the 'init' action
add_action( 'init', 'tao_taxonomy', 0 );

Giải thích:

  1. Đầu tiên là tạo một function tên tao_taxonomy() chứa các code tạo custom taxonomy và kích hoạt nó vào Action Hook tên là init.
  2. Biến $label là để chứa các tham số xác định tên hiển thị của taxonomy, ví dụ như Serie, Loại sản phẩm,…
  3. Biến $args dùng để chứa các tham số chỉ thuộc tính của taxonomy muốn tạo, nó chỉ có vài dòng thôi và ngay bên dưới mình sẽ liệt kê các tham số.
  4. Hàm register_taxonomy() được dùng để khởi tạo một taxonomy. Trong đó, loai-san-pham là tên của taxonomy cần tạo, post là tên post type được phép sử dụng taxonomy này và cuối cùng là truyền tham số từ biến $args vào để nó trở thành thuộc tính của taxonomy.

Dễ hiểu đúng không nào, và dưới đây là code đầy đủ tạo một custom taxonomy.

function tao_taxonomy() {

	/* Biến $label chứa các tham số thiết lập tên hiển thị của Taxonomy
	 */
	$labels = array(
		'name' => 'Các loại sản phẩm',
		'singular' => 'Loại sản phẩm',
		'menu_name' => 'Loại sản phẩm'
	);

	/* Biến $args khai báo các tham số trong custom taxonomy cần tạo
	 */
	$args = array(
		'labels'                     => $labels,
		'hierarchical'               => false,
		'public'                     => true,
		'show_ui'                    => true,
		'show_admin_column'          => true,
		'show_in_nav_menus'          => true,
		'show_tagcloud'              => true,
	);

	/* Hàm register_taxonomy để khởi tạo taxonomy
	 */
	register_taxonomy('loai-san-pham', 'post', $args);

}

// Hook into the 'init' action
add_action( 'init', 'tao_taxonomy', 0 );

Ở đoạn trên, các tham số thì mình nghĩ các bạn có thể tự hiểu được, riêng duy nhất có một tham số rất quan trọng đó là hierarchical. Nếu bạn đặt là true thì nó sẽ có thể phân cấp mẹ-con, giống category, nếu bạn đặt là false thì nó sẽ giống tính năng tag.

Và đây là kết quả.

Kết quả sau khi tạo Custom Taxonomy

Kết quả sau khi tạo Custom Taxonomy

Thế là xong rồi đấy, bây giờ bạn vào đăng một post mới thì cũng sẽ có phần tạo các term trong custom taxonomy bình thường.

post_custom_taxonomy

Tạo custom taxonomy nhanh với GenerateWP

Không cần viết lại đoạn code trên, bạn có thể vào đây và chọn thông số cho custom taxonomy cần tạo và copy code của họ cung cấp là xong.

Đừng quên lưu lại Permalink

Sau khi tạo xong custom taxonomy, hãy vào Settings -> Permalinks và ấn nút Save Changes lần nữa để tránh lỗi 404 khi nhấp vào link từng danh mục trong taxonomy.

Hiển thị danh sách các danh mục của taxonomy trong bài viết

Mặc định khi bạn viết một bài mới mà có chọn category hay tag thì nó cũng hiển thị ở trong bài viết mà cụ thể là nó được gọi ngắn gọn thông qua template tags the_tagsthe_categories().

Nhưng khi dùng custom taxonomy ta sẽ dùng một template tag cực kỳ hữu ích khi làm việc với custom taxonomy, đó là the_terms().


<?php the_terms( $post->ID, 'loai-san-pham', 'Loại sản phẩm: ', ',' ) ?>

Trong đoạn trên, bạn chỉ cần thay lại cái loai-san-pham thành tên custom taxonomy của bạn là ok.

get-taxonomy-terms

Hiển thị toàn bộ bài viết và danh mục trong custom taxonomy

Chẳng hạn nếu bạn muốn hiển thị toàn bộ bài viết và term trong custom taxonomy kiểu thế này..

lists-post-by-taxonomy

Thì có thể sử dụng đoạn code dưới đây.

Đặt đoạn này vào file functions.php trước để có thể sử dụng loại nhiều lần.

function list_posts_by_taxonomy( $post_type, $taxonomy, $get_terms_args = array(), $wp_query_args = array() ){
    $tax_terms = get_terms( $taxonomy, $get_terms_args );
    if( $tax_terms ){
        foreach( $tax_terms  as $tax_term ){
            $query_args = array(
                'post_type' => $post_type,
                "$taxonomy" => $tax_term->slug,
                'post_status' => 'publish',
                'posts_per_page' => -1,
                'ignore_sticky_posts' => true
            );
            $query_args = wp_parse_args( $wp_query_args, $query_args );

            $my_query = new WP_Query( $query_args );
            if( $my_query->have_posts() ) { ?>
                <h2 id="<?php echo $tax_term->slug; ?>" class="tax_term-heading"><?php echo $tax_term->name; ?></h2>
                <ul>
                <?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
                    <li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
                <?php endwhile; ?>
                </ul>
                <?php
            }
            wp_reset_query();
        }
    }
}

Sau đó nếu bạn muốn dùng thì chỉ cần viết đoạn dưới đây vào vị trí cần hiển thị và thay lại tên post type và tên taxonomy lại nhé.


list_posts_by_taxonomy( 'post', 'loai-san-pham' );

Hiển thị toàn bộ danh mục trong custom taxonomy

Đặt đoạn dưới đây vào vị trí cần hiển thị và thay lại tên taxonomy nhé.


echo '<ul>';
$args_list = array(
 'taxonomy' => 'loai-san-pham',
 'show_count' => true,
 'hierarchical' => true,
 'echo' => '0',
);
echo wp_list_categories($args_list);
echo '</ul>';

Lời kết

Tới đây mình hy vọng là bạn đã phần nào hiểu rõ được khái niệm custom taxonomy là gì và cách ứng dụng vói nó ra sao. Đừng quên bình luận gửi câu hỏi nếu bạn cần trợ giúp.

23 bình luận

Có thể bạn quan tâm

23 bình luận

Cấu trúc của 1 theme wordpress - Hoàng Nghiệp Ads 10/08/2020 - 1:53 Chiều

[…] Template này sẽ sử dụng cho tất cả các trang lưu trữ trên website. Trang lưu trữ là các trang phân loại bài viết như category, tag, custom taxonomy,… […]

Reply
Mã nguồn của wordpress vận hành như thế nào? - NGUYỄN PHÚC DUY 19/07/2020 - 5:46 Chiều

[…] wp_term_taxonomy: Là nơi chứa đựng các danh sách taxonomy mà bạn đang có, bao gồm cả custom taxonomy. […]

Reply
Làm trang shop đơn giản với WordPress – 01 – ENCSEO 21/06/2020 - 6:21 Chiều

[…] một trang shop cực kỳ đơn giản thông qua tính năng Metabox, Custom Post Type và Custom Taxonomy trong […]

Reply
Làm trang shop đơn giản với WordPress – 07 - mitdac.info 28/04/2020 - 12:35 Sáng

[…] đơn giản trên mã nguồn WordPress bằng việc áp dụng kiến thức custom post type, custom taxonomy và meta box. Trong phần này, chúng ta sẽ làm một việc cuối cùng đó là tạo […]

Reply
Làm trang shop đơn giản với WordPress – 03 – Trùm WordPress 02/04/2020 - 4:04 Chiều

[…] post type và taxonomy chúng ta có thể làm viết code thông qua register_post_type API và register_taxonomy API nhưng trong serie này mình sẽ tạo post type thông qua plugin Piklist vì viết code ngắn […]

Reply
Làm trang shop đơn giản với WordPress – 07 – Trùm WordPress 02/04/2020 - 3:37 Chiều

[…] đơn giản trên mã nguồn WordPress bằng việc áp dụng kiến thức custom post type, custom taxonomy và meta box. Trong phần này, chúng ta sẽ làm một việc cuối cùng đó là tạo […]

Reply
Làm trang shop đơn giản với WordPress – 01 – Trùm WordPress 02/04/2020 - 3:35 Chiều

[…] một trang shop cực kỳ đơn giản thông qua tính năng Metabox, Custom Post Type và Custom Taxonomy trong […]

Reply
Yoast SEO 3 có tính năng gì mới? – DOCBAO.TV – Đọc báo mới 24h – Đọc báo tin tức online 17/03/2020 - 12:09 Sáng

[…] tích hợp Yoast SEO metabox vào khu vực đó. Tính năng này cũng hoạt động trên cả custom taxonomy nhé. Ngoài ra bạn có thể thiết lập tiêu đề, mô tả ở mạng xã hội cho […]

Reply
Làm trang shop đơn giản với WordPress – 03 – DOCBAO.TV – Đọc báo mới 24h – Đọc báo tin tức online 17/03/2020 - 12:03 Sáng

[…] post type và taxonomy chúng ta có thể làm viết code thông qua register_post_type API và register_taxonomy API nhưng trong serie này mình sẽ tạo post type thông qua plugin Piklist vì viết code ngắn […]

Reply
Làm trang shop đơn giản với WordPress – 07 – DOCBAO.TV – Đọc báo mới 24h – Đọc báo tin tức online 17/03/2020 - 12:01 Sáng

[…] đơn giản trên mã nguồn WordPress bằng việc áp dụng kiến thức custom post type, custom taxonomy và meta box. Trong phần này, chúng ta sẽ làm một việc cuối cùng đó là tạo […]

Reply
Làm trang shop đơn giản với WordPress – 07 - Kiem Tien Online Blog 22/10/2019 - 12:08 Sáng

[…] đơn giản trên mã nguồn WordPress bằng việc áp dụng kiến thức custom post type, custom taxonomy và meta box. Trong phần này, chúng ta sẽ làm một việc cuối cùng đó là tạo […]

Reply
CUSTOM POST TYPE TOÀN TẬP – Tuy Phong 21/08/2019 - 1:40 Sáng

[…] Post Type có thể bạn sẽ phải tìm hiểu thêm một khái niệm khác nữa, đó là Custom Taxonomies mà mình sẽ đề cập ở bài tiếp theo và sau khi có bài đó rồi mình sẽ đề […]

Reply
Thiết kế trang bán hàng đơn giản bằng Worpress – Thiết kế website Đắk Lắk 03/08/2019 - 12:35 Chiều

[…] trên mã nguồn WordPress bằng việc áp dụng kiến thức custom post type, custom taxonomy và meta box. Trong phần này, chúng ta sẽ làm một việc cuối cùng đó là tạo […]

Reply
CẤU TRÚC DATABASE WORDPRESS , CÁCH TỐI ƯU VÀ BACKUP DATABASE | Quốc Hùng IT 23/06/2019 - 9:03 Chiều

[…] wp_term_taxonomy: Là nơi chứa đựng các danh sách taxonomy mà bạn đang có, bao gồm cả custom taxonomy. […]

Reply
Làm trang shop đơn giản với WordPress – 01 - Thủ thuật Blog 02/01/2019 - 6:44 Chiều

[…] đơn giản thông qua tính năng Metabox, Custom Post Type và Custom Taxonomy trong […]

Reply
LÀM TRANG SHOP ĐƠN GIẢN VỚI WORDPRESS – 07 | Minhdb.com 05/08/2018 - 10:18 Chiều

[…] đơn giản trên mã nguồn WordPress bằng việc áp dụng kiến thức custom post type, custom taxonomy và meta box. Trong phần này, chúng ta sẽ làm một việc cuối cùng đó là tạo […]

Reply
Viết bài theo serie với plugin Organize Series – Phuong Nam demo site 28/07/2018 - 7:36 Sáng

[…] này nên dùng plugin nào là tốt nhất? Nếu bạn là coder thì có thể sử dụng custom taxonomy rồi gắn vào thôi. Nhưng nếu bạn cần tìm plugin thì mình khuyên dùng […]

Reply
CUSTOM POST TYPE TOÀN TẬP – Tricks 24/01/2018 - 1:38 Chiều

[…] Post Type có thể bạn sẽ phải tìm hiểu thêm một khái niệm khác nữa, đó là Custom Taxonomies mà mình sẽ đề cập ở bài tiếp theo và sau khi có bài đó rồi mình sẽ đề […]

Reply
LÀM TRANG SHOP ĐƠN GIẢN VỚI WORDPRESS – 01 23/09/2017 - 5:07 Sáng

[…] một trang shop cực kỳ đơn giản thông qua tính năng Metabox, Custom Post Type và Custom Taxonomy trong […]

Reply
Blog Quốc Hùng IT 10/09/2017 - 9:58 Chiều

[…] cách custom taxonomy bằng cách viết code thì bạn Thạch Phạm đã viết rất trõ tại đây các bạn có thể xem qua. Sau đây mình sẽ hướng dẫn các bạn cách dùng plugin […]

Reply
Tiến 07/04/2017 - 8:54 Chiều

Anh ơi, làm sao để tạo file show sản phẩm theo danh mục. file mà mình chỉ cần viết là nó nhận luôn á anh

Reply
adot 26/07/2016 - 9:57 Sáng

bac co the giup em lam bai cach ket noi ftp voi wod k ak?e ket noi mai ma k dc …thank’s

Reply
Thạch Phạm 28/07/2016 - 3:48 Sáng

Word làm gì có hỗ trợ FTP bạn ơi.

Reply

Để lại một bình luận

* Khi bình luận, bạn đồng ý rằng thông tin bạn nhập vào bao gồm tên, email và địa chỉ IP sẽ được lưu giữ tại website.