$傳遞到您的函數的列my_edit_product_columns是所有現有列的數組。您可以替換整個事物或使用任何標準數組操作來更改列的順序列&。
例如,如果你想指定你會做一些這樣的列(從事件採取自定義後我用型):
$columns = array(
"cb" => "<input type=\"checkbox\" />",
"title" => "Event Name",
"event_date" => "Date",
"start_time"=>"Time",
);
所以,如果你簡單的print_r($列),看看有什麼它目前有,你可以手動重新排序它。
要在特定位置插入您的列在現有$列陣列中使用:
# 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
// ADDED
我只是測試在本地使用稱爲產品的自定義帖子類型。這段代碼適合我。偏移量從第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;
}
感謝您的回答,我已經試過array_slice和列最終還是是最後一個? – danyo
更新回答上面 – wunderdojo
非常酷的答案 - 比試圖用jQuery破解這個更好 –