Hướng dẫn custom term field trong wordpress

Ngày đăng: 05 - 05 - 2020 Lượt xem: 319 lượt

Bài trước mình đã hướng dẫn cho bạn cách custom taxonomy trong wordpress, để tiếp nối các tính năng liên quan đến taxonomy, hôm nay mình sẽ hướng dẫn cho các bạn cách custom term field trong wordpress.

Vậy term field là gì? Ứng dụng của nó như thế nào? Các tạo custom term field ra sao? Hôm nay chũng ta sẽ đi tìm hiểu nha.

Custom term field trong wordpress là gì?

Mặc định trong wordpress ở mỗi category (danh mục) sẽ có các trường như: Tên, Đường dẫn, mổ tả, danh mục cha… Các trường này người ta gọi là term field.

Custom term field trong wordpress là gì?

Mặc định trong category wordpress chỉ có chừng này trường

Và tất nhiên wordpress cũng cung cấp khả năng tạo thêm 1 field mới ở đây. Khi chúng ta đi tạo một term field mới người ta gọi là custom term field trong wordpress.

Custom term field sẽ áp dụng cho tất cả các taxonomy chứ không riêng gì category nhé.

Tạo custom term field trong wordpress

Ví dụ: Mình muốn custom 1 field để chứa link hình ảnh đại diện cho category, tương ứng với mỗi category sẽ có 1 link.

Các bạn chèn đoạn code sau vào file functions.php của theme đang sử dụng nhé.

Tạo custom term field ở phần thêm mới:

<?php function add_feature_group_field($taxonomy) { ?>
   <div class="form-field term-group">
       <label for="location"><?php _e('Ảnh đại diện'); ?></label>
       <input class="controls" type="text" id="linkcat" name="linkcat"/>
   </div> 
<?php }
add_action( 'category_add_form_fields', 'add_feature_group_field', 10, 1);
function save_category( $term_id, $tt_id ){
    if( isset( $_POST['linkcat'] ) && '' !== $_POST['linkcat'] ){
        add_term_meta( $term_id, 'linkcat', $_POST['linkcat'], true );
    }
}
add_action( 'created_category', 'save_category', 10, 2 );
?>

Giải thích:

  • Hàm add_feature_group_field dùng để hiển thị khu vực nhập link, hàm này sẽ được móc vào action category_add_form_fields, Lưu ý chữ category là tên taxonomy bạn cần muốn custom.
  • Hàm save_category có nhiệm vụ kiểm tra dữ liệu và lưu vào database, hàm này sẽ được móc vào action created_category, Lưu ý chữ category là tên taxonomy cần custom.

Kết quả thu được: 

Đã xuất hiện thêm field Ảnh đại diện

Hiển thị trong khu vực sửa category:

Đoạn code trên chỉ hiển thi khu vực thêm mới một category, còn nều các bạn muốn hiển thị ở khu vực chỉnh sửa category thì dùng thêm đoạn code sau nhé.

<?php
function edit_feature_group_field($taxonomy) { 
    $term_id = $taxonomy->term_id; 
    $linkcat= get_term_meta( $term_id, $key = 'linkcat', true ); 
?>
<tr class="form-field">
    <th valign="top" scope="row">
        <label for="bedroom">Ảnh đại diện</label>
    </th>
    <td>
        <input class="controls" name="linkcat" type="text" id="linkcat" value="<?php echo $linkcat; ?>">
    </td>
</tr>
<?php }
add_action( 'category_edit_form_fields', 'edit_feature_group_field', 10, 1);
function update_category( $term_id, $tt_id ){
    if( isset( $_POST['linkcat'] ) && '' !== $_POST['linkcat'] ){
         update_term_meta( $term_id, 'linkcat', $_POST['linkcat'] );
    }
} 
add_action( 'edited_category', 'update_category', 10, 2 );
?>

Giải thích: 

  • $linkcat = get_term_meta( $term_id, $key = ‘linkcat’, true ); là đoạn code lấy giá trị của link hiện tại.
  • Hàm edit_feature_group_field để hiển thị phần nhập link trong khu vực chỉnh sửa category. Hàm này được móc vào action category_edit_form_fields, Lưu ý chữ category là tên taxonomy
  • Hàm update_category cập nhật dữ liệu vào database, hàm này được móc vào action edited_category, Lưu ý chữ category là tên taxonomy

Tạo custom term field bằng plugin

Cũng như tất cả các chức năng khác trong wordpress, thì custom term field này cũng có hàng tá plugin hỗ trợ. Các plugin thì sẽ rất chuyên nghiệp và các field cũng đa dạng.

Các bạn cân nhắc nếu cần có thể sử dụng một số plugin sau nha:

Mình có share plugin acf pro tại đây bạn nào cần thì download về nha:

Download code "Plugin ACF Pro phiên bản 5.8.9"
Để download code vui lòng thực hiện các bước sau!
Bước 1: Like fan page của Kira:
Bước 2: Để lại email, hệ thống sẽ kiểm tra và gởi code về mail trong vòng 10 phút!
Bonus:
Lưu ý: Một số trường hợp mail sẽ gởi vào mục spam. Các bạn vui lòng check kỹ ạ!

Get custom term field ra front end

Để get một term field ra front end chúng ta sử dụng hàm sau:

get_term_meta( $term_id, $key, true )

Ví dụ:

<?php
$args = array(
    'type'      => 'post',
    'number'    => 10,
    'parent'    => 0
);
$categories = get_categories( $args );
foreach ( $categories as $category ) { ?>
     <?php echo get_term_meta( $category->term_id, 'linkcat', true ); ?>
<?php } ?>

Tổng kết:

Như vậy là hôm nay mình đã hướng dẫn cho bạn cách custom term field trong wordpress. Tính năng này được áp dụng rất nhiều ví dụ như tạo ảnh đại diện cho chuyên mục…

Hy vong với chút kiến thức này sẽ giúp các bạn học tốt lập trình theme wordpress

Chào các bạn hẹn gặp lại ở các bài sau

0 0 votes
Article Rating

guest
0 Comments
Inline Feedbacks
View all comments

Bài viết liên quan

Sử dụng child theme trong WordPress

Sử dụng child theme trong WordPress

23 - 02 - 2021

Sử dụng child theme trong WordPress như thế nào? Nếu bạn đã từng sử dụng WordPress để xây dựng các...

Hướng dẫn tạo sidebar và get sidebar trong wordpress

Hướng dẫn tạo sidebar và get sidebar trong wordpress

08 - 05 - 2020

Sidebar trong wordpress sẽ giúp website linh động hơn. Giúp khách hàng có thể thay đổi một số thành...

Hướng dẫn tạo menu và get menu trong wordpress

Hướng dẫn tạo menu và get menu trong wordpress

07 - 05 - 2020

Menu trong wordpress là một thành phần khá quan trọng. Hầu hết các website wordpress đều có chức năng...

Hướng dẫn get user và custom user field trong wordpress

Hướng dẫn get user và custom user field trong wordpress

07 - 05 - 2020

Tiếp tục với seri hướng dẫn lập trình theme wordpress, hôm nay mình sẽ hướng dẫn cho các bạn...

Custom taxonomy trong wordpress từ a đến z và get chúng ra front end

Custom taxonomy trong wordpress từ a đến z và get chúng ra front end

04 - 05 - 2020

Chào anh em! Tiếp tục với chủ đề hướng dẫn lập trình theme wordpress hôm nay mình sẽ hướng...

Custom field trong wordpress và các vấn đề liên quan

Custom field trong wordpress và các vấn đề liên quan

29 - 04 - 2020

Tiếp tục với loạt bài viết về hướng dẫn lập trình theme wordpress hôm nay mình sẽ giới thiệu...

0
Would love your thoughts, please comment.x
()
x