Admin Columns
Managing Columns
Page
Để thêm, xóa quản lý các cột của Page bạn có thể thực hiện bằng hai hook:
Filter: cập nhật danh sách columns
manage_pages_columns
Action: cập nhật dữ liệu cho columns
manage_pages_custom_column
Category
Để thêm, xóa quản lý các cột của Category bạn có thể thực hiện bằng hai hook:
Filter: cập nhật danh sách columns
manage_categories_[cate_type]_columns
Action: cập nhật dữ liệu cho columns
manage_categories_[cate_type]_custom_column
Post
Để thêm, xóa quản lý các cột của Post bạn có thể thực hiện bằng hai hook:
Filter: cập nhật danh sách columns
manage_post_[post_type]_columns
Action: cập nhật dữ liệu cho columns
manage_post_[post_type]_custom_column
Example
Tạo custom post với post type là register_post
register_post_type('email_register',
array(
'labels' => array(
'name' => 'Email đăng ký',
'singular_name' => 'Email đăng ký',
),
'public' => false,
'show_admin_column' => false,
'capibilitie' => array(
'view' => 'view_email_register',
'add' => 'add_email_register',
'edit' => 'edit_email_register',
'delete' => 'delete_email_register',
),
'supports' => [
'group' => ['info']
]
)
);
Custom lại danh sách columns
function email_register_colum( $columns ) {
$columnsnew['cb'] = 'cb';
$columnsnew['title'] = 'Email';
$columnsnew['content'] = 'Số điện thoại';
$columnsnew['created'] = 'Ngày đăng ký';
$columnsnew['action'] = 'Hành động';
$columns = $columnsnew;
return $columns;
}
add_filter( 'manage_post_email_register_columns', 'email_register_colum');
Custom lại dữ liệu cho columns
function custom_email_register_colum( $column_name, $item ) {
switch ( $column_name ) {
case 'content':
echo $item->content;
break;
}
}
add_action( 'manage_post_email_register_custom_column', 'custom_email_register_colum',10,2);
User
Để thêm, xóa quản lý các cột của Page bạn có thể thực hiện bằng hai hook:
Filter: cập nhật danh sách columns
manage_user_columns
Action: cập nhật dữ liệu cho columns
manage_user_custom_column
Table Class
Nếu bạn mốn tạo ra một đối tượng mới và không sử dụng custom post type thì có thể tạo một table mới cho đối tượng của riêng bạn
Create New Table
để tạo ra một Table SkillDo bạn phải kế thừa kế class skd_object_list_table.
class SKD_demo_list_table extends skd_object_list_table {
function get_columns() {
$this->_column_headers = [
'cb' => 'cb',
'title' => 'Tiêu Đề',
];
$this->_column_headers = apply_filters( "manage_demo_columns", $this->_column_headers );
return $this->_column_headers;
}
function column_default( $item, $column_name ) {
do_action( 'manage_demo_custom_column', $column_name, $item );
}
function _column_action( $item, $column_name, $module, $table, $class) {
}
}
get_columns: tạo danh sách columns với biến _column_headers
và tạo filter manage_demo_columns
để plugin khác sử dụng khi cần custom
column_default: Khai báo action manage_demo_custom_column
để plugin khác sử dụng khi cần custom data colums
column_column_header_key
: Hiển thị data cho column có key là column_header_key
_column_action: Khai báo các button action
Use Table
$args = array(
'items' => $list_demo,
'table' => 'demo_table',
'model' => 'demo',
'module'=> 'demo',
);
$table_demo = new SKD_demo_list_table($args);
$table_demo->display();