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();