19/04/2020
Bạn là một blogger chuyên chia sẻ các thủ thuật, bài viết hoặc các bài học nhưng chức năng WordPress thì chỉ áp dụng hiện theo danh mục và từ khóa, bạn muốn các bài đó hiện theo 1 series.
Cũng như danh mục hay các dạng “Archive” khác, để lưu trữ loạt bài series, mình cần tạo ra một Taxonomy để lưu trữ những bài trong cùng series. Bạn thêm đoạn code sau vào file functions.php
function custom_taxonomy() { $label = array('name' => 'Các Series', 'singular' => 'Series bài viết', 'menu_name' => 'Series bài viết', 'edit_item' => 'Chỉnh sửa Series', 'add_new_item' => 'Thêm Series mới', 'search_items'=> 'Tìm kiếm Series', 'popular_items'=> 'Series phổ biến', 'separate_items_with_commas'=> 'Thêm Series, phân tách bởi dấu phẩy', 'choose_from_most_used'=> 'Chọn Series phổ biến', 'not_found'=> 'Không có Series bài viết nào'); $arr = array('labels' => $label, 'hierarchical' => true, 'public' => true, 'show_ui' => true, 'show_admin_column' => true, 'show_in_nav_menus' => true, 'show_tagcloud' => true,); register_taxonomy('series', 'post', $arr ); } add_action( 'init', 'custom_taxonomy');
Bây giờ mình sẽ thực hành thử tạo một taxonomy thuộc tính sản phẩm cho một custom post type. Nếu muốn tạo cho post bình thường thì bạn chỉ cần thay slug sanpham thanh post trong hàm register_taxonomy() là được. Toàn bộ code như sau:
function custom_taxonomy() {function custom_taxonomy() { $label = array('name' => 'Các thuộc tính sản phẩm', 'singular' => 'Thuộc tính sản phẩm', 'menu_name' => 'Thuộc tính sản phẩm', 'edit_item' => 'Chỉnh sửa thuộc tính', 'add_new_item' => 'Thêm thuộc tính mới', 'search_items'=> 'Tìm kiếm thuộc tính', 'popular_items'=> 'Thuộc tính phổ biến', 'separate_items_with_commas'=> 'Thêm thuộc tính, phân tách bởi dấu phẩy', 'choose_from_most_used'=> 'Chọn thuộc tính phổ biến', 'not_found'=> 'Không có thuộc tính nào'); $arr = array( 'labels' => $label, 'hierarchical' => true, 'public' => true, 'show_ui' => true, 'show_admin_column' => true, 'show_in_nav_menus' => true, 'show_tagcloud' => true,); register_taxonomy('thuoc-tinh-san-pham', 'sanpham', $arr ); } add_action( 'init', 'custom_taxonomy');
Bạn có thể tìm hiểu về các thông số của hàm register_taxonomy tại đây. Sau khi bạn đưa đoạn trên vào file functions.php bạn sẽ nhận được như hình dưới. Lưu ý là mình đang tạo cho custom post type chứ không phải post bình thường.
Tạo taxonomy chỉ đơn giản như vậy thôi, bạn cũng có thể sử dụng nhiều Plugin tạo taxonomy mà không cần đụng vào code, nhưng theo mình công việc này rất đơn giản nên hạn chế không cần phải dùng đến plugin làm gì.
Để hiển thị taxonomy bạn sử dụng hàm get_the_terms()
. Cấu trúc hàm như sau:
get_the_terms( id_post, 'taxonomy name' );
Ví dụ mình muốn lấy hết tất cả những loại sản phẩm mà sản phẩm này có mình sẽ viết như sau:
<?php $terms = get_the_terms( $post->ID, 'thuoc-tinh-san-pham' ); foreach($terms as $term){ echo $term->name;} ?>
Đoạn này được viết trong file single nên mình có thể dùng $post->ID
để lấy ra ID. thuoc-tinh-san-pham
là tên taxonomy mình đăng ký. Sau đó thì sử dụng hàm lặp để lấy ra những thông tin cần thiết như mình lấy ra tên.
Chúc bạn thành công !