Thông thường với trang web được viết bằng wordpress trong Admin khi post bài chúng ta có các field sau:
1. Tiêu đề
2. Nội dung
3. Categories
4. Tags
5. …
2. Nội dung
3. Categories
4. Tags
5. …
Đôi khi chúng ta cần thêm một số trường khác ngoài những trường đã có sẵn, các bạn mới học wordpress có thể tìm hiểu và thử tạo cho mình một số trường theo yêu cầu riêng của trang web của mình.
Bây giờ chúng ta sẽ thêm mới một trường nữa vào sau field Nội Dung
6. tên trường là my_text (lưu trữ thông tin tác giả bài viết)
Các bạn làm như sau:
A. mở file …/wp-content/themes/your_themes/functions.php
Step 1 Khai báo meta box
$prefix = 'my_';
$meta_box = array(
'id' => 'my-meta-box',
'title' => 'Customize meta box',
'page' => 'post',
'context' => 'normal',
'priority' => 'high',
'fields' => array(
array(
'name' => 'Author by',
'desc' => '(Tác giả bải viết)',
'id' => $prefix.'text',
'type' => 'text',
'std' => ''
)
)
);
Step 2: khai báo các hàm sau để gọi khi Admin chọn Posts / Add New or Edit
add_action('admin_menu', 'wdnvnew_add_box');
// Add meta box
function wdnvnew_add_box() {
global $meta_box;
add_meta_box($meta_box['id'], $meta_box['title'], 'wdnvnew_show_box', $meta_box['page'], $meta_box['context'], $meta_box['priority']);
}
// callback function to show fields in meta box
function wdnvnew_show_box() {
// Ở đây wordpress không cho hiển thị code nên các bạn xem hình 1
}
hình 1 hoặc xem link
Step 3: Khai báo hàm khi lưu dữ liệu
add_action('save_post', 'wdnvnew_save_data');
// Save data from meta box
function wdnvnew_save_data($post_id) {
global $meta_box;
// verify nonce
if (!wp_verify_nonce($_POST['wdnvnew_meta_box_nonce'], basename(__FILE__))) {
return $post_id; }
// check autosave
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return $post_id; }
// check permissions
if ('page' == $_POST['post_type']) {
if (!current_user_can('edit_page', $post_id)) {
return $post_id; }
} elseif (!current_user_can('edit_post', $post_id)) {
return $post_id; }
foreach ($meta_box['fields'] as $field) {
$old = get_post_meta($post_id, $field['id'], true);
$new = $_POST[$field['id']];
if ($new && $new != $old) {
update_post_meta($post_id, $field['id'], $new); }
elseif ('' == $new && $old) {
delete_post_meta($post_id, $field['id'], $old); }
}
}
Bây giờ các bạn vào trong Admin chọn Posts / Add New
Các bạn sẽ thấy hình form post dữ liệu thêm một Fields mới là Author như hình sau:
Các bạn sẽ thấy hình form post dữ liệu thêm một Fields mới là Author như hình sau:
Chúc các bạn thành công
Không có nhận xét nào:
Đăng nhận xét