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

Source: Hướng dẫn custom term field trong wordpress
Ở bài trước mình đã hướng dẫn các bạn cách tùy chỉnh 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 các bạn cách tùy chỉnh trường thuật ngữ trong wordpress.
Vậy trường thuật ngữ là gì? Ứng dụng của nó như thế nào? Làm cách nào để bạn tạo các trường thuật ngữ tùy chỉnh? Hôm nay chúng ta cùng tìm hiểu nhé.

Trường thuật ngữ tùy chỉnh trong wordpress là gì?
Mặc định trong wordpress trong mỗi danh mục (category) sẽ có các trường như: Tên, Đường dẫn, Mô tả, Thư mục gốc… Các trường này được gọi là trường thuật ngữ.

Theo mặc định, chỉ có nhiều trường này trong danh mục wordpress
Và tất nhiên wordpress cũng cung cấp khả năng tạo một trường mới tại đây. Khi chúng ta tạo một trường thuật ngữ mới, nó được gọi là trường thuật ngữ tùy chỉnh trong wordpress.
Trường thuật ngữ tùy chỉnh sẽ áp dụng cho tất cả các đơn vị phân loại, không chỉ danh mục.
Tạo trường thuật ngữ tùy chỉnh trong wordpress

Ví dụ: Tôi muốn tùy chỉnh 1 trường để chứa liên kết hình ảnh đại diện cho danh mục, tương ứng với mỗi danh mục sẽ có 1 liên kết.
Bạn chèn đoạn mã sau vào tệp functions.php của chủ đề bạn đang sử dụng.
Tạo trường thuật ngữ tùy chỉnh trong phần bổ sung 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 được sử dụng để hiển thị khu vực đầu vào liên kết, chức năng này sẽ được kết nối với hành động category_add_form_fields, Lưu ý từ thể loại là tên của phân loại bạn cần tùy chỉnh.
- Hàm save_category chịu trách nhiệm kiểm tra dữ liệu và lưu vào cơ sở dữ liệu, chức năng này sẽ hoạt động create_category, Lưu ý từ thể loại là tên của phân loại cần tùy chỉnh.
Kết quả:

Các trường khác đã xuất hiện hình đại diện
Hiển thị trong khu vực chỉnh sửa danh mục:
Đoạn mã trên chỉ hiển thị khu vực thêm mới một danh mục, nếu bạn muốn hiển thị trong khu vực chỉnh sửa danh mục, sử dụng mã sau.
<?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à mã nhận giá trị của liên kết hiện tại.
- Hàm edit_feature_group_field để hiển thị đầu vào liên kết trong khu vực chỉnh sửa danh mục. Chức năng này được kết nối với hành động category_edit_form_fields, Lưu ý từ thể loại là tên của phân loại học
- Hàm update_category cập nhật dữ liệu vào cơ sở dữ liệu, chức năng này được nối với hành động edit_thể loại, Lưu ý từ thể loại là tên của phân loại học
Tạo trường thuật ngữ tùy chỉnh bằng plugin
Giống như tất cả các chức năng khác trong wordpress, trường thuật ngữ tùy chỉnh này cũng có hàng tá plugin hỗ trợ. Plugin sẽ rất chuyên nghiệp và các lĩnh vực cũng đa dạng.
Hãy cân nhắc nếu cần, bạn có thể sử dụng một số plugin sau:
- ACF (Trường tùy chỉnh nâng cao)
- Các loại Tootset
Tôi có chia sẻ plugin acf pro ở đây, bạn nào cần thì tải về:
Đưa trường thuật ngữ tùy chỉnh vào giao diện người dùng
Để đưa một trường thuật ngữ vào giao diện người dùng, 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óm lược:
Vì vậy, hôm nay tôi chỉ cho bạn cách trường thuật ngữ tùy chỉnh 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 danh mục…
Hi vọng những kiến thức nho nhỏ này sẽ giúp bạn học tốt lập trình theme wordpress
Xin chào các bạn, hẹn gặp lại các bạn trong bài viết tiếp theo
Via: sieucoder.com
from sieucoder.com https://ift.tt/3Eqibqt
via Sieucoder.com
Nhận xét
Đăng nhận xét