Hiển thị tất cả category của custom post type | get the terms
https://levantoan.com/hien-thi-tat-ca-category-cua-custom-post-type-get-the-terms/
Last updated
Was this helpful?
https://levantoan.com/hien-thi-tat-ca-category-cua-custom-post-type-get-the-terms/
Last updated
Was this helpful?
Khi ta có 1 custom post type là Product thì không thể dùng the_category() để hiển thị các category có trong bài được mà phải dùng hàm khác. Đó chính là get_the_terms.
$id: Là ID của bài viết, bắt buộc và mặc định là 0. Khi trong vòng while() thì chúng ta thường dùng biến $post->ID để lấy được ID của bài viết
$taxonomy: là chuỗi, hoặc nằm trong array. Giá trị này bắt buộc phải có. Đây là tên taxonomy của custom post type. VD: category, sanpham, product_svl …. (Cách tìm: Tại đường dẫn admin như sau thì ta có thể biết dc tên taxonomy wp-admin/edit-tags.php?taxonomy=category tại ví dụ này thì $taxonomy = category)
Khi chúng ta gọi hàm get_the_terms thì hàm này sẽ ra về kiểu mảng (array), false hoặc wp_error. Dưới đây là thống kê các tham số có trong mảng
1234567891011121314
stdClass Object( [term_id] => [name] => [slug] => [term_group] => [term_order] => [term_taxonomy_id] => [taxonomy] => [description] => [parent] => [count] => [object_id] =>)
Ví dụ này sẽ hiển thị category của 1 bài viết có tên taxonomy là product_svl
Kết quả trả về như sau: Chuyên mục: cat1, cat2, cat 3 …
Cách dùng: $term->name để thấy tên,$term->count để lấy được số bài viết có trong cat và nhiều giá trị khác các bạn xem thêm ở phần giá trị trả về nhé
Code dưới đây có thể giúp bạn hiển thị toàn bộ category của bài viết dùng custom post type và bao gồm cả link
Chèn đoạn code này vào file functions.php
12345678910111213141516171819202122232425262728293031323334
<?php// get taxonomies terms linksfunction
custom_taxonomies_terms_links(){ // get post by post id $post
= get_post(
$post->ID );
// get post type by post $post_type
=
$post->post_type;
// get post type taxonomies $taxonomies
= get_object_taxonomies(
$post_type,
'objects'
);
$out
=
array(); foreach
(
$taxonomies
as
$taxonomy_slug
=>
$taxonomy
){
// get the terms related to post $terms
= get_the_terms(
$post->ID,
$taxonomy_slug
);
if
( !empty(
$terms
) ) { $out[] =
"<h2>"
.
$taxonomy->label .
"</h2>\n<ul>"; foreach
(
$terms
as
$term
) { $out[] = ' <li><a href="' . get_term_link(
$term->slug,
$taxonomy_slug
) .'">' .
$term->name .
"</a></li>\n"; } $out[] =
"</ul>\n"; } }
return
implode('',
$out
);}?>
Sau đó chèn đoạn code sau vào chỗ bạn muốn hiển thị trong vòng lặp while() nhé
1
<?php
echo
custom_taxonomies_terms_links(); ?>
Chúc các bạn thành công ^^
Xem thêm: http://codex.wordpress.org/Function_Reference/get_the_terms
Chú ý: Như chúng ta thấy ví dụ ở trên chưa đưa ra được link của category đó. Muốn lấy được link thì chúng ta dùng thêm hàm get_term_link nữa nhé. Nhớ thay product_svl thành tên taxonomy của bạn nhéMẫu website nổi bật của tôiMẫu website bán thiết bị nhà bếp, nhà tắm, thiết bị vệ sinh tuyệt đẹpMẫu website bán hàng giống shopeeMẫu website bán đồ gỗ, đồ thờ, đồ phòng thủyWeb bán giày