Phân loại thuật ngữ wordpress

Custom Taxonomy sẽ giúp bạn tạo ra nhiều tùy chọn khác nhau. Thông thường taxonomy có sẵn là danh mục (category) và thẻ (tag), nhưng bây giờ bạn muốn thêm bất kỳ loại nào tương tự nhưng để thực hiện nhiệm vụ khác thì custom taxonomy sẽ giúp bạn thực hiện công việc này. Bài viết dưới đây mình sẽ giới thiệu cho bạn cách tạo ra một phân loại để lưu trữ những thông tin bổ sung mà không cần phải lưu chung với danh mục hoặc thẻ

Cấu hình hàm tạo Taxonomy

Taxonomy sử dụng hook init để móc một hàm chưa hàm  register_taxonomy() . Với hàm register_taxonomy chúng ta có 2 tham số là $label$arr. tương tự như tạo custom post type nhưng tạo Taxonomy thì dễ hơn nhiều. Cấu trúc hàm, và hook đầy đủ như sau:

 function custom_taxonomy() {
       $label = array(
       );

       $arr = array(
        );

        register_taxonomy('thuoc-tinh-san-pham', 'post', $arr);
 }
 add_action( 'init', 'custom_taxonomy');
  • nhãn $. is the variable will save the name of the label
  • mảng $arr. is variable chứa mảng tham số của Taxonomy. biến $label cũng sẽ được truyền vào biến này
  • register_taxonomy() sẽ có chức năng đăng ký Phân loại, có 3 tham số là slug, loại bài đăng (bạn có thể đăng ký nó vào một loại bài đăng khác chẳng hạn như giới hạn) . ), and các tham số trong biến $arr.
  • Cuối cùng, bạn sẽ móc hàm này hook action 'init'

Tạo taxonomy cho custom post type

Hiện tại mình sẽ thực hiện hành động thử tạo phân loại thuộc tính sản phẩm cho loại bài đăng tùy chỉnh mình tạo trong bài. Hướng dẫn tạo Custom Post Type trong WordPress. Nếu muốn tạo bài đăng bình thường thì bạn chỉ cần thay slug sanpham thanh post in function  register_taxonomy() là được. Toàn bộ mã 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 tham số của hàm register_taxonomy tại đây. Sau khi bạn đưa đoạn vào chức năng tập tin. php bạn sẽ nhận được như hình bên dưới. Lưu ý là mình đang tạo cho custom post type chứ không phải post bình thường.

Phân loại thuật ngữ wordpress

Kết quả tạo taxonomy

Phân loại thuật ngữ wordpress

tùy chọn phân cấp = true sẽ hiển thị như thế này trong bài đăng

Phân loại thuật ngữ wordpress

tùy chọn phân cấp = false sẽ hiển thị như thế này trong bài đă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 chạm vào mã, 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 dùng đến plugin làm gì

Phân loại thuật ngữ wordpress

Show taxonomy outside themes

Để phân loại hiển thị, bạn sử dụng hàm  get_the_terms() . Constructor function as after.

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 mình sẽ viết như sau

ID, 'thuoc-tinh-san-pham' ); 
   foreach($terms as $term){ echo $term->name;} 
?>

Đoạn này được viết trong một tệp nên mình có thể sử dụng  $post->ID để lấy ID. thuoc-tinh-san-pham is name taxonomy mình đăng ký. Sau đó, hãy sử dụng hàm vòng lặp để lấy ra những thông tin cần thiết như mình lấy tên ra.

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

4. 7/5 - (3 bình chọn)

Phân loại thuật ngữ wordpress

Tác giả. ĐOÀN CÔNG TUẤN

Với niềm đam mê về khoa học công nghệ thông tin, đặc biệt là lập trình. Tôi đã thành lập blog Tuandc. com để lưu trữ và chia sẻ những kiến ​​thức thực tế có được trong quá trình làm việc. Với kinh nghiệm gần 10 năm làm việc trong lĩnh vực, những kiến ​​thức tôi chia sẻ hy vọng sẽ giúp được phần nào đó