CHƯƠNG TRÌNH GIẢM 50% GIÁ TẤT CẢ CÁC GÓI HOSTING WORDPRESS => Link giảm 50%
Chú ý: Bởi vì bài viết khá chi tiết dành cho các bạn mới học WordPress, nếu bạn là một chuyên gia có thể bỏ qua các bước không cần thiết.
1. Thêm mới Trường hay còn gọi là Custom Field Term là gì?
Để dễ hình dung hơn bạn có thể xem ảnh mà tôi đã khoanh vùng các trường mới như sau:
Term hay còn gọi là Chuyên Mục, Danh Mục hoặc chính xác hơn là một Taxonomy. Dù có thể gọi bằng nhiều tên khác nhau, mục đích cuối cùng của nó vẫn là một thư mục chứa nhiều bài viết (post).
Mặc định mỗi một Term WordPress chỉ cho chúng ta 4 trường cơ bản: Tên, Đường dẫn, Chuyên mục cha và Mô tả….
Vì vậy không ít người gặp khó khăn khi cần dùng thêm trường mới thì phải làm sao? Bạn đừng quá lo lắng, bài viết này sẽ giúp bạn dễ dàng thêm mới vô số Field khác.
Let’s Go…..
2. Cách thêm mới một trường cho chuyên mục
Để thêm mới được trường, chúng ta cần xác định được {$taxonomy}
2.1 Xác định tên Taxonomy
Để xác định được tên Taxonomy cần thêm mới Field bạn làm theo cách sau:
Sau khi click vào chuyên mục ta sẽ biết được taxonomy là category như sau:
2.2 Tiến hành thêm mới Field cho Term
Các bạn cần chú ý là tất cả các dòng code được thao tác trong file functions.php
Trong ví dụ này tôi khai báo cho taxonomy là category
<?php if(is_admin()){ add_action( 'category_add_form_fields', 'wpshare247_category_add_form_fields' ); function wpshare247_category_add_form_fields( $taxonomy ) { } }
Cụ thể hơn như sau:
{$taxonomy}_add_form_fields
Tiếp theo:
<?php if(is_admin()){ //Dành cho Form add new term add_action( 'category_add_form_fields', 'wpshare247_category_add_form_fields' ); function wpshare247_category_add_form_fields( $taxonomy ) { $new_field = 'new_text_field_1'; ?> <div class="form-field"> <label for="<?php echo $new_field;?>">Trường text 1</label> <input type="text" name="<?php echo $new_field;?>" id="<?php echo $new_field;?>" /> <span>Mô tả cho trường này</span> </div> <?php } //Dành cho Form edit 1 term add_action( 'category_edit_form_fields', 'wpshare247_category_edit_form_fields', 10, 2 ); function qrcode366_tbay_qrcode_tax_edit_form_fields( $term, $taxonomy ) { // -------------------------------------- $new_field = 'new_text_field_1'; $new_field_val = get_term_meta( $term->term_id, $new_field, true ); ?> <tr class="form-field"> <th><label for="<?php echo $qrfield;?>">Trường text 1</label></th> <td> <input name="<?php echo $new_field;?>" id="<?php echo $new_field;?>" type="text" value="<?php echo $new_field_val;?>" /> </td> </tr> <?php } }
2.3 Tiến hành lưu dữ liệu cho field mới
<?php add_action( 'created_category', 'wpshare247_category_save_term_fields' ); add_action( 'created_category', 'wpshare247_category_save_term_fields' ); function wpshare247_category_save_term_fields( $term_id ) { update_term_meta( $term_id, 'new_text_field_1', sanitize_text_field( $_POST[ 'new_text_field_1' ] ) ); //Lưu thêm các field mới dưới đây }
2.4 Toàn bộ code thêm mới một field cho Taxonomy
<?php if(is_admin()){ //Dành cho Form add new term add_action( 'category_add_form_fields', 'wpshare247_category_add_form_fields' ); function wpshare247_category_add_form_fields( $taxonomy ) { $new_field = 'new_text_field_1'; ?> <div class="form-field"> <label for="<?php echo $new_field;?>">Trường text 1</label> <input type="text" name="<?php echo $new_field;?>" id="<?php echo $new_field;?>" /> <span>Mô tả cho trường này</span> </div> <?php } //Dành cho Form edit 1 term add_action( 'category_edit_form_fields', 'wpshare247_category_edit_form_fields', 10, 2 ); function qrcode366_tbay_qrcode_tax_edit_form_fields( $term, $taxonomy ) { // -------------------------------------- $new_field = 'new_text_field_1'; $new_field_val = get_term_meta( $term->term_id, $new_field, true ); ?> <tr class="form-field"> <th><label for="<?php echo $qrfield;?>">Trường text 1</label></th> <td> <input name="<?php echo $new_field;?>" id="<?php echo $new_field;?>" type="text" value="<?php echo $new_field_val;?>" /> </td> </tr> <?php } add_action( 'created_category', 'wpshare247_category_save_term_fields' ); add_action( 'created_category', 'wpshare247_category_save_term_fields' ); function wpshare247_category_save_term_fields( $term_id ) { update_term_meta( $term_id, 'new_text_field_1', sanitize_text_field( $_POST[ 'new_text_field_1' ] ) ); //Lưu thêm các field mới dưới đây } }
2.5 Lấy dữ liệu trường mới thêm
Để lấy dữ liệu 1 trường của term bạn dùng hàm get_term_meta như sau:
<?php $new_field_val = get_term_meta( $term_id, 'new_text_field_1', true ); // $term_id là term id tương ứng echo $new_field_val; // Hoặc sử dụng bất kì đâu nếu bạn cần
Đến đây bạn đã hoàn thành cơ bản việc thêm và sử dụng field mới cho các term bằng code WordPress rồi. Tuy nhiên tôi cũng chia sẻ thêm một cách khác bạn xem ở bước bên dưới nhé.
3. Thêm mới bằng plugin Advanced Custom Fields
Có thể nói Advanced Custom Fields hay gọi tắt là ACF là plugin hết sức hữu dụng trong việc tạo các Metabox Field mới cho Post, Custom Post Type hay Taxonomy. Bạn có thể download tại đây nhé: https://wordpress.org/plugins/advanced-custom-fields/
Như vậy tôi vừa hướng dẫn bạn cách thêm mới 1 trường dữ liệu cho một danh mục. Hi vọng các bạn thực hành theo một cách dễ dàng nhé.
CHƯƠNG TRÌNH GIẢM 50% GIÁ TẤT CẢ CÁC GÓI HOSTING WORDPRESS => Link giảm 50%