표준 column_cb () 함수를 사용한다고 가정하면 목록 테이블은 $ _GET의 배열에서 선택된 행의 ID를 목록 테이블의 생성자에서 '단일'로 할당 된 것으로 레이블이 지정된 $ _GET의 배열로 전달합니다.
일반적인 column_cb ()는 다음과 같습니다.
function column_cb($item){
return sprintf(
'<input type="checkbox" name="%1$s[]" value="%2$s" />',
/*$1%s*/ $this->_args['singular'], //Let's simply repurpose the table's singular label ("video")
/*$2%s*/ $item->id //The value of the checkbox should be the record's id
);
}
예를 들어 비디오를 표시하는 목록 테이블이 있다고 가정 해 봅시다. 생성자는 다음과 같습니다.
function __construct(){
global $status, $page;
//Set parent defaults
parent::__construct( array(
'singular' => 'video', //singular name of the listed records
'plural' => 'videos', //plural name of the listed records
'ajax' => false //does this table support ajax?
) );
}
따라서 목록 테이블에서 3 개의 행을 확인하고 일괄 작업 목록에서 "삭제"를 선택하고 적용을 누르면 $ _GET [ 'video']를 사용하여 선택한 행에 액세스 할 수 있습니다.
function process_bulk_action() {
//Detect when a bulk action is being triggered...
if( 'delete'===$this->current_action() ) {
foreach($_GET['video'] as $video) {
//$video will be a string containing the ID of the video
//i.e. $video = "123";
//so you can process the id however you need to.
delete_this_video($video);
}
}
}