传递给您的函数 my_edit_product_columns 的 $columns 是所有现有列的数组。您可以替换整个事物或使用任何标准数组操作来更改列和列顺序。
例如,如果您想指定列,您可以执行以下操作(取自我使用的事件自定义帖子类型):
$columns = array(
"cb" => "<input type=\"checkbox\" />",
"title" => "Event Name",
"event_date" => "Date",
"start_time"=>"Time",
);
因此,如果您只是简单地 print_r($columns) 来查看它当前拥有的内容,您可以手动重新排序它。
要将列插入现有 $columns 数组中的特定位置,请使用:
# Insert at offset 2
$offset = 2;
$newArray = array_slice($columns, 0, $offset, true) +
array('new_column_id' => 'New Column Name') +
array_slice($columns, $offset, NULL, true);
有关更多信息,请参见此线程:array_splice() for associative arrays
//添加
我刚刚在我使用的名为 products 的自定义帖子类型上进行了本地测试。这段代码对我来说很好。偏移量从第 1 列开始,所以为了使我的新列成为第二列,我将偏移量设置为 2。
public function productsListColumns($columns){
$columns = array(
"cb" => "<input type=\"checkbox\" />",
"title" => "Product",
"price" => "Price"
);
$offset = 2;
$newArray = array_slice($columns, 0, $offset, true) +
array('new_column_id' => 'New Column Name') +
array_slice($columns, $offset, NULL, true);
return $newArray;
}