我正在尝试向我的一个自定义帖子类型添加一列,但仅在编辑分类法页面上。
我为我的自定义帖子类型“events”注册了一个名为“event categories”的分类法。
我可以成功地将自定义列添加到自定义帖子类型编辑屏幕,但似乎无法在编辑分类页面上使用挂钩。
我挖了一些岩芯,找到了钩子
$taxonomies = apply_filters( "manage_taxonomies_for_{$post_type}_columns", $taxonomies, $post_type );
的内部
class-wp-posts-list-table.php
这让我相信,可以连接到此页面并向其添加自定义列。但当连接到添加列时,实际上什么都没有发生。
function events_color_column($defaults) {
$defaults[\'event_cat_color\'] = \'Event Category Color\';
return $defaults;
}
function events_column_content($column_name, $post_ID) {
if ($column_name == \'event_cat_color\') {
echo \'Event Color : #2432\';
}
}
add_filter(\'manage_taxonomies_for_events_columns\', \'events_color_column\');
add_action(\'manage_taxonomies_for_events_column\', \'events_color_column_content\', 10, 2);
但是,如果我简单地将filter+操作更改为“manage\\u events\\u columns”和“manage\\u events\\u column”,那么自定义帖子类型屏幕上的内容就会起作用。
有人能看到我在这里做错了什么吗,或者这是一个需要在内核中修补的错误吗?
编辑:
通过执行以下操作,我能够连接到自定义分类页面以显示列标题:
对于其他任何面临类似问题的人,您需要传入页面ID。对我来说,以下方法有效:
add_filter(\'manage_edit-event_categories_columns\', \'events_color_column\');
但我似乎不明白为什么没有使用
add_action(\'manage_edit-event_categories_custom_column\', \'events_color_column_content\', 10, 2);
我也尝试过传入分类名称,即post类型名称,但似乎没有任何效果。我错过了什么?