我在用户页面中添加了一列,当复选框不在正确的位置时就会出错。这是我的代码,你能帮我把复选框移到正确的位置吗?
public static function user_register_columns( $columns ) {
// create a new array with account just after username, then everything else
$new_columns = array();
if ( isset($columns[\'username\']) ) {
$new_columns[\'username\'] = $columns[\'username\'];
unset($columns[\'username\']);
}
$new_columns[\'account\'] = self::__( \'Account\' );
$new_columns = array_merge($new_columns, $columns);
return $new_columns;
}
public static function user_column_display( $empty=\'\', $column_name, $id ) {
$account = WP_ABC_Account::get_instance( $id );
if ( !$account )
return; // return for that temp post
switch ( $column_name ) {
case \'account\':
$account_id = $account->get_ID();
$user_id = $account->get_user_id_for_account( $account_id );
$user = get_userdata( $user_id );
$get_name = $account->get_name();
$name = ( strlen( $get_name ) <= 1 ) ? \'\' : $get_name;
//Build row actions
$actions = array(
\'edit\' => sprintf( \'<a href="#">\'.self::__( \'Manage\' ).\'</a>\', $account_id ),
\'payments\' => sprintf( \'<a href="#">\'.self::__( \'Payments\' ).\'</a>\', $account_id ),
\'gifts\' => sprintf( \'<a href="#">\'.self::__( \'Gifts\').\'</a>\', $account_id )
);
//Return the title contents
return sprintf( self::__( \'%1$s <span style="color:silver">(account id:%2$s)</span> <span style="color:silver">(user id:%3$s)</span>%4$s\' ),
$name,
$account_id,
$user_id,
WP_List_Table::row_actions( $actions )
);
break;
default:
// code...
break;
}
}
结果如下所示,复选框的位置不正确。它必须始终位于左侧。
非常感谢。
最合适的回答,由SO网友:Chittaranjan 整理而成
我想你已经迷上了manage_users_columns
. 可能是您的array\\u merge导致了此问题。而不是使用$new_columns
作为第一个参数,使用它作为第二个参数,如下所示。
$new_columns = array_merge ( $columns, $new_columns );