问题是,如果检查列(即“文件类型”列),您会看到如下标记/HTML:
<th scope="col" id="0" class="manage-column column-0 num">File Type</th>
这是一个
td
该列中的元素:
<td class="0 column-0" data-colname="File Type">text/csv</td>
所以问题是,正如你在
id
和
class
属性,是列的
key, 这是零(
0
) 应该是什么时候
file_type
如下图所示:
<th scope="col" id="file_type" class="manage-column column-file_type">File Type</th>
<td class="file_type column-file_type" data-colname="File Type">text/csv</td>
那是因为
customAdminColumns()
函数,您使用
array_splice()
如果你读它
doc, 您将看到以下文本:
请注意,替换数组中的键不会保留。
因此,请参考您的代码:
$insert=array(
\'file_type\' => \'File Type\'
);
array_splice($columns,3,0,$insert);
The
file_type
输入
$insert
(替换数组)将不会被保留,PHP将根据其/PHP自己的计算将其更改为数字键。
因此,在我的情况下,密钥更改为0
.
解决方案
Option 1: 循环通过
$columns
数组并插入
file_type
项目位于首选位置
public function customAdminColumns($columns){
$columns2 = [];
$i = 0;
foreach ( $columns as $key => $label ) {
if ( 3 === $i ) {
$columns2[\'file_type\'] = \'File Type\';
}
$columns2[ $key ] = $label;
$i++;
}
$columns = $columns2;
unset( $columns2 );
return $columns;
}
Option 2: 使用
array_slice()
&恩达斯;切片
$columns
数组,直到首选索引/位置,追加
file_type
项添加到切片数组中,然后从
$columns
.
public function customAdminColumns($columns){
$columns2 = array_slice( $columns, 0, 3 );
$columns2[\'file_type\'] = \'File Type\';
$columns = $columns2 + array_slice( $columns, 3 );
unset( $columns2 );
return $columns;
}