WORDPRESS CUSTOM TAXONOMY TOÀN TẬP
https://thachpham.com/wordpress/wordpress-development/wordpress-custom-taxonomy-toan-tap.html
Last updated
Was this helpful?
https://thachpham.com/wordpress/wordpress-development/wordpress-custom-taxonomy-toan-tap.html
Last updated
Was this helpful?
bởi Thạch Phạm 23 bình luận 8866 views
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à Category và Tag. 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.
Để tạo Custom Taxonomy thì chúng ta chỉ cần khai báo mẫu ngắn gọn như sau:
Giải thích:
Đầ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.
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,…
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ố.
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.
Ở đ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.
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.
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.
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.
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_tags
và the_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()
.
01
<?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.
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..
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.
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é.
01
list_posts_by_taxonomy(
'post',
'loai-san-pham'
);
Đặt đoạn dưới đây vào vị trí cần hiển thị và thay lại tên taxonomy nhé.
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.