只是为了子孙后代,因为我,像@IV4一样,对于@Brian的答案仍然有一些争论,以使其适用于海关税:
add_filter( "manage_{screen_id}_columns", "column_header_function" ) );
add_action( "manage_{tax_slug}_custom_column", "populate_rows_function"), 10, 3 );
所以在我的例子中,我的自定义分类法是“产品类别”,所以对我来说是这样的:
add_filter( "manage_edit-product-category_columns", array ( __CLASS__, "populate_edit_page_column_header" ) );
add_action( "manage_product-category_custom_column", array ( __CLASS__, "populate_edit_page_columns"), 10, 3 );
还应该注意的是(尽管退伍军人已经知道这一点),对于分类法自定义列,您只能为默认情况下未定义的列创建自定义行数据这是因为
WP_Terms_List_Table
类,而不是
WP_Posts_List_Table
类工作时,自定义列操作仅通过调用
column_default
方法,仅当列名与该类中定义的默认列之一(cb、description、links、name、posts、slug)不匹配时才调用该方法。
在我的例子中,我想修改description列,但不得不创建一个名为summary的自定义列。还要注意,如果要对自定义列进行排序,则必须将其添加到排序过滤器中(尽管在我的情况下,对描述列进行排序没有意义)。
就操作的函数签名而言,它最多可以包含3个参数,其中第一个参数实际上是无用的(这让我想知道@Brian的答案到底是如何工作的):
function my_custom_columns( $value, $column, $term_id ){ }
在哪里
$value
基本上是空的,
$column
是您想要打开的,并且
$term_id
如果您需要引用术语中包含的任何数据,这可能非常重要!