Home > Wordpress > Thêm field trong wordpress post (add meta box)

Thêm field trong wordpress post (add meta box)

 

Ví dụ:

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.  …

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 
	}

wordpress-add-meta-box-functionhì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:

wordpress-add-meta-box

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

Phần 2 Panpic sẽ hướng dẫn các bạn cách truy vấn lấy dữ liệu của field Author

PHP Developer
nhantam
Panpic Technology dịch vụ thiết kế web

Advertisements
Categories: Wordpress

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: