Thủ thuật wordpress: Tạo thuộc tính cho bài viết nhanh nhất với Meta box

Chào các bạn, hôm nay tôi sẽ giới thiệu cho các bạn  plugin Meta Box giúp cho công việc tạo thuộc tính cho bài viết (post)  một cách nhanh nhất.

Giả sử, tôi có 1 post với custom post type là product để giới thiệu sản phẩm. Bình thường  chúng ta chèn hẳn vào khung soạn thảo cũa phần nội dung nhưng nếu làm như vậy sẽ rất khó khăn cho việc lọc sản phẩm theo giá sau này. Cách dễ làm nhất là dùng Custom Fields như hình dưới đây:

1. custom fields

Sau đó dán “get_post_meta(get_the_ID(),’Price’,true)” vào nơi cần hiển thị.

 Cách trên không sai nhưng sẽ gây khó khăn cho người nhập liệu. Bạn tưởng tượng công việc sẽ nhanh hơn và khoa học nếu mọi thứ được bày sẵn như hình dưới:

2. Custom post Fields

Để làm điều đó cách dể nhất là dùng plugin meta-box được cung cấp miễn phí tại : http://www.deluxeblogtips.com/meta-box/

 1.      Cài đặt meta-box:
Tải về và copy hoặc upload vào trong thư mục /wp-content/plugins. Sau đó đăng nhập bằng tài khoản admin để kích hoạt cho meta-box được phép chạy. Khoan hãy tạo thử 1 bài viết vì hiện tại chúng ta chưa có khai báo  để meta-box hoạt động theo ý muốn

2.      Cấu hình meta-box:
Mở tập tin functions.php trong thư mục themes hiện hành. Khai báo 1 hàm như sau:

 

 function rw_register_meta_box()
    {                            
                   if ( !class_exists( 'RW_Meta_Box' ) )
                   return;        
                   $meta_box = array(
                 'id' => 'product-info', //   ID là tên nhóm thuộc tính. Mỗi post có thể có nhiều nhóm. 
                 'title' => 'Thông tin sản phẩm',
                 'pages' => array( 'post' ), // Bài viết thông thường là “post” hoặc là custom post type.
                   'context' => 'normal',
                   'priority' => 'high',
                   'fields' => array( // phần khai báo các field gôm tên hiển thị, id, loại field và các thuộc tính khác.
                                               array(
                                                 'name' => 'Giá',
                                                 'desc' => 'VND',
                                                 'id' => 'gia-san-pham',
                                                 'type' => 'text',
                                                 'std' => '',
                                                 'class' => 'custom-class'                                                                                         
                                                 ),

                                                 array(
                                                 'name'     => 'Tình trạng',
                                                 'id'       =>'tinh-trang-san-pham',
                                                 'type'     => 'select',                                                                                               
                                                 'options'  => array(
                                                                'Còn hàng' => 'Còn hàng',
                                                                'Hết hàng' =>'Hết hàng',
                                                                'Đang về' => 'Đang về',
                                                 ),                                                          
                                  )
                   );                                            
                   new RW_Meta_Box( $meta_box );     
    }

Để biết thêm thông tin về cách khai báo các loại field các bạn vui lòng truy cập : http://www.deluxeblogtips.com/meta-box/define-fields/

Cuối cùng bạn cần phải đăng ký function trên với hệ thống của wordpress trong tập tin functions.php

   add_action( 'admin_init', 'rw_register_meta_box' );

Tiếp theo các bạn tạo 1 bài viết mới hoặc custom post type mà bạn đăng ký để xem thành quả:

3.xem kq

3.      Hiển thị ra Front-End

Để xuất thuộc tính đã khai báo các bạn chỉ cần dán 

get_post_meta(get_the_ID(), ‘gia-san-pham’,true) 

ở nơi cần hiển thị.

Sau đây là 1 ví dụ dùng Meta Box:

3.demo

 

Tham khảo thêm về Custom post type để hiểu được hoàn toàn bài viết: http://codex.wordpress.org/Post_Types

Hi vọng bài viết này sẽ giúp ích cho các bạn tiết kiệm thời gian trong quá trình phát triển các website wordpress thân thiện với người dùng nhất.